我有三个列表:listA
,listB
,listC
。
listA listB
1,a,tf b,true
2,b,tf a,false
3,c,tf c,true
我希望listC
按listA
+ listB
的顺序排列listA
(替换listA
' s {{1与tf
' s listB
/ true
)。
false
这是我的代码
listC
1,a,false
2,b,true
3,c,true
使用单独的迭代器 - 而listA和listB被拆分和索引,它工作正常,但是当我运行上面的代码时,程序就会冻结。有什么想法吗?
答案 0 :(得分:1)
你真的不远了。迭代器可能会让人感到困惑,所以我倾向于避免使用它们。
我无法真正看到代码中无限循环的位置 - 我期待NullPointerException
,因为您多次调用a.next()
和b.next()
。< / p>
如果您更改代码以删除迭代器,它可以正常工作:
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());