Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用一组数字在其他索引上创建unic ArrayList_Java_Arraylist_Numbers - Fatal编程技术网

如何在Java中使用一组数字在其他索引上创建unic ArrayList

如何在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

见下面我的代码;我需要6个不重复的单组数字

我需要一个
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因为我是一只老狗,厌倦了新把戏,更喜欢“常规”代码而不是那些新奇的流。不管怎样,大部分时间都是这样