Java - 迭代两个列表,比较然后添加到另一个列表

巫女

我有三个列表:listA, listB, listC

listA        listB
1,a,tf       b,true
2,b,tf       a,false
3,c,tf       c,true

我想有listC成为listA+listB中的顺序listA(取代listAtf具有listBtrue/ false)。

listC
1,a,false
2,b,true
3,c,true

这是我的代码

Iterator a= listA.iterator();
Iterator b= listB.iterator();
    while(a.hasNext()){
        while(b.hasNext()){
            if(String.valueOf(a.next()).split(",")[1].equals(String.valueOf(b.next()).split(",")[0])){
                    listC.add(String.valueOf(a.next()).replaceAll("tf", String.valueOf(b.next()).split(",")[1]));
            }
        }
    }

将 listA 和 listB 的单独迭代器-while 拆分和索引,它工作正常,但是当我运行上面的代码时,程序只是冻结。有什么想法吗?

迈克尔

你真的不远了。迭代器可能会令人困惑,所以我倾向于避免使用它们。

我实在看不出其中的无限循环是在你的代码-我期望的NullPointerException,因为你打电话a.next(),并b.next()多次。

如果您更改代码以删除迭代器,它可以正常工作:

List<String> listA = Arrays.asList("1,a,tf", "2,b,tf", "3,c,tf");
List<String> listB = Arrays.asList("b,true", "a,false", "c,true");
List<String> listC = new ArrayList<>();

for(String a : listA)
{
    for (String b : listB)
    {
        if (String.valueOf(a).split(",")[1].equals( String.valueOf(b).split(",")[0] ) )
        {
            listC.add(String.valueOf(a).replaceAll("tf", String.valueOf(b).split(",")[1]));
        }
    }
}

System.out.println(listC.toString());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个列表添加到Java中的另一个列表?

在JAVA中将列表对象添加到另一个列表中

如何比较两个java sql日期,一个在列表中,另一个刚刚输入

Java8流-比较两个列表的对象值并将值添加到第一个列表的子对象?

Java-如何将一个对象添加到另一个对象的列表中

如何使用 Java 8 lambdas 将对象添加到另一个列表内的列表中

如何在Java中比较两个日期,然后将结果与另一个日期比较?

Java - 如何遍历对象数组列表并将满足特定条件的元素添加到另一个对象数组列表

比较两个对象列表并通过比较java 8中两个列表的一个属性形成一个新列表

通过使用Java比较另一个列表排序对象列表

如何在Java中将列表追加到另一个列表

合并两个Long类型的列表,并添加到Java 8中的现有地图

用一个 JAVA Stream 比较两个列表不起作用

如何将时间添加到 Java 中的另一个 Time 实例

在Java中将ArrayList添加到另一个ArrayList

将另一个Java源目录添加到Gradle脚本

Java将值添加到另一个类的数组

如何在另一个类Java中将对象添加到数组

使用Java 8根据特定值将两个pojo列表合并到另一个pojo列表中

比较2个列表,然后使用Java8将匹配项添加到对象映射中

Java:比较两个列表

Java比较两个列表

java将项目从一个arraylist添加到另一个arraylist

Java的8:遍历一个列表,并添加到地图根据病情

如何在Java 8中迭代对象数组列表并设置为另一个对象列表?

将两个不同类型的列表添加到另一个列表中

java-从另一个列表的子属性创建一个列表

如何在Java中将一个列表转换为另一个列表?

对象添加到包含在第一的类属性之一,Java的另一个对象