java逻辑函数编写(涉及算法,较难) 一个方法 返回值为一个双list的组合 List<List<>> getList(int i){ }
根据int的大小组合多种不重复的情况组合为三种:空串(""),非空串("非空"),null值(null)如果int是1那么返回一个list.get(0).get(0)="...
根据int的大小组合多种不重复的情况
组合为三种: 空串( "" ), 非空串 ( "非空" ), null值 ( null )
如果int是1 那么返回一个
list.get(0).get(0)=""
list.get(1).get(0)=null
list.get(2).get(0)="有值"
如果int是2 那么就麻烦了。如果三。。四。。。
举例:int为2
第一种组合:
list.get(0).get(0) = "",
list.get(0).get(1) = ""
第二种组合
list.get(1).get(0) = ""
list.get(1).get(1)=null
第三种组合
list.get(2).get(0)=""
list.get(2).get(1)="优质"
第四种组合
list.get(2).get(0)=null
list.get(2).get(1)=null
第五第六第七。。。。。。
如果int为三。。。。
第一种组合:
list.get(0).get(0) = "",
list.get(0).get(1) = ""
list.get(0).get(2) = ""
第二种组合:
list.get(1).get(0) = "",
list.get(1).get(1) = null
list.get(1).get(2) = ""
第三种组合:
list.get(1).get(0) = ""
list.get(1).get(1) = null
list.get(1).get(2) = null
第四第五第六。。。。太多了。。。
。。。。。。。。。。 要求list.get(i)不重副
挺难得 涉及到算法了 帮帮忙。。。 展开
组合为三种: 空串( "" ), 非空串 ( "非空" ), null值 ( null )
如果int是1 那么返回一个
list.get(0).get(0)=""
list.get(1).get(0)=null
list.get(2).get(0)="有值"
如果int是2 那么就麻烦了。如果三。。四。。。
举例:int为2
第一种组合:
list.get(0).get(0) = "",
list.get(0).get(1) = ""
第二种组合
list.get(1).get(0) = ""
list.get(1).get(1)=null
第三种组合
list.get(2).get(0)=""
list.get(2).get(1)="优质"
第四种组合
list.get(2).get(0)=null
list.get(2).get(1)=null
第五第六第七。。。。。。
如果int为三。。。。
第一种组合:
list.get(0).get(0) = "",
list.get(0).get(1) = ""
list.get(0).get(2) = ""
第二种组合:
list.get(1).get(0) = "",
list.get(1).get(1) = null
list.get(1).get(2) = ""
第三种组合:
list.get(1).get(0) = ""
list.get(1).get(1) = null
list.get(1).get(2) = null
第四第五第六。。。。太多了。。。
。。。。。。。。。。 要求list.get(i)不重副
挺难得 涉及到算法了 帮帮忙。。。 展开
4个回答
展开全部
package com.se.test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class LogicTest {
public static final String NULL = "null";
public static final String IS_EMPTY = "\"\"";
public static final String NOT_EMPTY = "exist value";
public List<List<String>> getList(int len){
List<List<String>> result = new ArrayList<List<String>>();
Set<String> saveListStr = new HashSet<String>();
String[] saveStrs = {NULL, IS_EMPTY, NOT_EMPTY};
int size = (int)Math.pow(3, len);
Random random = new Random();
while(true){
List<String> strList = new ArrayList<String>();
for(int i=0;i<len;i++){
int r = random.nextInt(3);
strList.add(saveStrs[r]);
}
result.add(strList);
saveListStr.add(strList.toString());
if(result.size() > saveListStr.size()){
result.remove(strList);
continue;
}
if(saveListStr.size() == size){
break;
}
}
return result;
}
public static void main(String[] args) {
LogicTest lt = new LogicTest();
List<List<String>> list = lt.getList(4);
System.out.println(list);
System.out.println(list.size());
}
}
真的不好做,好不容易 做出来。看看是你想要的结果把
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class LogicTest {
public static final String NULL = "null";
public static final String IS_EMPTY = "\"\"";
public static final String NOT_EMPTY = "exist value";
public List<List<String>> getList(int len){
List<List<String>> result = new ArrayList<List<String>>();
Set<String> saveListStr = new HashSet<String>();
String[] saveStrs = {NULL, IS_EMPTY, NOT_EMPTY};
int size = (int)Math.pow(3, len);
Random random = new Random();
while(true){
List<String> strList = new ArrayList<String>();
for(int i=0;i<len;i++){
int r = random.nextInt(3);
strList.add(saveStrs[r]);
}
result.add(strList);
saveListStr.add(strList.toString());
if(result.size() > saveListStr.size()){
result.remove(strList);
continue;
}
if(saveListStr.size() == size){
break;
}
}
return result;
}
public static void main(String[] args) {
LogicTest lt = new LogicTest();
List<List<String>> list = lt.getList(4);
System.out.println(list);
System.out.println(list.size());
}
}
真的不好做,好不容易 做出来。看看是你想要的结果把
展开全部
这个不涉及什么算法,最多就是数据结构里的十字链表结构变一下而已,就是你的表达太糟糕了,别人看不太懂。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同楼上,这意思表达的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
啥米东西啊,看不懂啥意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询