如何在java中混合2个列表
Posted
技术标签:
【中文标题】如何在java中混合2个列表【英文标题】:How can I mix 2 lists in java 【发布时间】:2016-03-16 21:39:05 【问题描述】:我有一个列表,例如: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();
有时它会崩溃,或者我总是遇到同一对。有什么建议吗?
【问题讨论】:
【参考方案1】:您的方法在我看来有点容易出错。首先打乱两个列表然后一个一个地获取它们各自的元素会容易得多,如下所示:
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));
【讨论】:
【参考方案2】:使用这个:
Collections.addAll(lista, lista2); // Join the 2 lists
Collections.shuffle(lista); // shuffle the result list
【讨论】:
以上是关于如何在java中混合2个列表的主要内容,如果未能解决你的问题,请参考以下文章
java 如何对中英文和符号数字混合的字符串进行截取,其中包含各种括号( ( [ < >] ) )?
Android:如何混合 2 个音频文件并使用 soundPool 重现它们