【问题标题】:How can I mix 2 lists in java如何在java中混合2个列表
【发布时间】: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();
}

有时它会崩溃,或者我总是遇到同一对。有什么建议吗?

【问题讨论】:

    标签: java android android-studio arraylist


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-27
        • 2020-03-10
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 2015-09-24
        • 1970-01-01
        相关资源
        最近更新 更多