Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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中混合2个列表_Java_Android_Android Studio_Arraylist - Fatal编程技术网

如何在java中混合2个列表

如何在java中混合2个列表,java,android,android-studio,arraylist,Java,Android,Android Studio,Arraylist,我有一个列表,例如:{Daniel,Michael,Kate},还有一个:{Daniel,Michael,Kate}。我想做的是第三个列表,例如:{Daniel Kate,Kate Michael,Michael Daniel}。我想把它们混合在一起,使它们的元素相互混合,形成一个新的列表?我试过这个: int start2; //do a check here for (int i = 0; i < lista.size(); i++) { start2 = random.ne

我有一个列表,例如:
{Daniel,Michael,Kate}
,还有一个:
{Daniel,Michael,Kate}
。我想做的是第三个列表,例如:
{Daniel Kate,Kate Michael,Michael Daniel}
。我想把它们混合在一起,使它们的元素相互混合,形成一个新的列表?我试过这个:

int start2;

//do a check here
for (int i = 0; i < lista.size(); i++) {
    start2 = random.nextInt(lista2.size() - 0) + 0;
    if (lista2.get(start2).equals(lista.get(i))) {
        i--;
    } else {
        listaParejas.add(lista.get(i) + "->" + lista2.get(start2));
        listaSalidos.add(lista2.get(start2));
        lista2.remove(start2);
    }
}

for (int i = 0; i < listaParejas.size(); i++) {
    Toast.makeText(getApplicationContext(), listaParejas.get(i), Toast.LENGTH_LONG).show();
}
int-start2;
//在这里检查一下
对于(int i=0;i”+lista2.get(start2));
listaSalidos.add(lista2.get(start2));
列表A2.移除(开始2);
}
}
对于(int i=0;i
有时它会崩溃,或者我总是得到同一对。有什么建议吗?

使用以下方法:

Collections.addAll(lista, lista2); // Join the 2 lists
Collections.shuffle(lista); // shuffle the result list

我觉得你的方法有点容易出错。首先洗牌两个列表,然后逐个获取它们各自的元素,这样会容易得多,如下所示:

Collections.shuffle(list1);
Collections.shuffle(list2);

for (int i = 0; i < Math.min(list1.size(), list2.size()); i++) {
    list3.add(list1.get(i) + "-" + list2.get(i));
}
Collections.shuffle(列表1);
收藏。洗牌(列表2);
对于(int i=0;i