如何在Java中使用一组数字在其他索引上创建unic ArrayList
见下面我的代码;我需要6个不重复的单组数字 我需要一个如何在Java中使用一组数字在其他索引上创建unic ArrayList,java,arraylist,numbers,Java,Arraylist,Numbers,见下面我的代码;我需要6个不重复的单组数字 我需要一个for语句来生成6个唯一的数字,我需要在下一个索引上不完全重复 public static void main(String[] args) { int n = 15; ArrayList<Integer> Numbers = new ArrayList<Integer>(n); ArrayList SingleGroup = new ArrayList(); ArrayList Gr
for
语句来生成6个唯一的数字,我需要在下一个索引上不完全重复
public static void main(String[] args) {
int n = 15;
ArrayList<Integer> Numbers = new ArrayList<Integer>(n);
ArrayList SingleGroup = new ArrayList();
ArrayList Groups = new ArrayList();
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
while (Numbers.size() < 15) {
for (int i = 0; i < n; i++) {
Integer r = rand.nextInt(60);
if (r != 0) {
if (!Numbers.contains(r)) {
if (Numbers.size() < 15) {
Numbers.add(r);
Collections.sort(Numbers);
}
}
}
}
}
publicstaticvoidmain(字符串[]args){
int n=15;
ArrayList编号=新的ArrayList(n);
ArrayList SingleGroup=新的ArrayList();
ArrayList组=新的ArrayList();
Random rand=新的Random();
rand.setSeed(System.currentTimeMillis());
while(number.size()<15){
对于(int i=0;i
我只想列出6个数字,然后在一个arraylist中分组,然后在每个索引中放入一个新的arraylist分组,每个新绘制的数字组
for (int i = 0; i < 6; i++) {
while ((Groups.size() < 6)&& (SingleGroup.size() < 6)) {
Integer val = rand.nextInt(14);
if (!SingleGroup.contains(Numbers.get(val))) {
SingleGroup.add(Numbers.get(val));
}
if (SingleGroup.size() == 6) {
Groups.add(i, SingleGroup);
//SingleGroup.set(0, 7);
}
Collections.sort(SingleGroup);
}
}
System.out.println(Numbers);
System.out.println(Groups);
}
for(inti=0;i<6;i++){
而((Groups.size()<6)和&(SingleGroup.size()<6)){
整数val=rand.nextInt(14);
如果(!SingleGroup.contains(Numbers.get(val))){
SingleGroup.add(number.get(val));
}
if(SingleGroup.size()==6){
添加(i,单组);
//单组(0,7);
}
Collections.sort(单组);
}
}
系统输出打印项次(数字);
系统输出打印项次(组);
}
如何在Java中用一组数字在其他索引上创建unic ArrayList这并不是我们认为最有效的实现,但由于
数字列表中只有15个元素,效率可以忽略不计
ArrayList<ArrayList<Integer>> Groups = new ArrayList<>();
for(int i = 0; i < 6; i++) {
Collections.shuffle(Numbers);
ArrayList<Integer> temp = new ArrayList<>( Numbers.subList(0, 6) );
Collections.sort(temp);
Groups.add(temp);
}
ArrayList Groups=new ArrayList();
对于(int i=0;i<6;i++){
收藏。洗牌(数字);
ArrayList temp=新的ArrayList(Numbers.subList(0,6));
集合。排序(临时);
组。添加(临时);
}
最后,如果需要,对数字进行排序。如果我正确理解了需求,下面的Java 8代码将满足您的需求。它依赖于和,从15个列表中得到6个随机数
List<Integer> numbers = new Random().ints(0, 60).distinct().limit(15)
.sorted().boxed().collect(Collectors.toList());
System.out.println(numbers);
List<List<Integer>> groups = new ArrayList<>();
for (int i = 0; i < 6; i++) {
Collections.shuffle(numbers);
ArrayList<Integer> group = new ArrayList<>(numbers.subList(0, 6));
Collections.sort(group);
groups.add(group);
}
System.out.println(groups);
您正在使用原始ArrayList
。不要!!!不清楚你想要什么。请编辑问题,清理文本,并展示您想要的示例。运行:[4,6,10,14,17,20,32,39,40,41,45,49,52,55,59][[6,20,32,45,49,52]],--这里只有一个输出成功,但我需要在组中列出的其他数字中输出六(6)个,但新的索引不仅是0索引为什么要对数字进行排序?为什么每次添加新元素???在我看来,您可以简单地使用数字数组,然后从前6个元素中选取一个元素,并从中创建一个新的ArrayList。因此,您希望代码获得15个介于0和59(含)之间的唯一随机数,然后重复(6次)获取这15个数字中的6个?所以你最终得到了6组6个数字,所有数字都来自原来的15个唯一数字,一个数字可能在多个组中,但每组只能有一个?我做对了吗?为什么不groups.add(numbers.stream().limit(6).sorted().collect(Collectors.toList())代码>?非常好的工作伙伴,谢谢,这很好,你就像一个老板@Andreas你知道stream.collector是如何在android上工作的studio@AJNeufeld因为我是一只老狗,厌倦了新把戏,更喜欢“常规”代码而不是那些新奇的流。不管怎样,大部分时间都是这样