双重for循环优化(仅适用于单线程)
2021-03-29 本文已影响0人
DKing丶
使用迭代器来删除,内层循环(bb)中已使用或判断过的元素,减少循环次数
有时内循环中的元素只会匹配外层元素一次,如果已经进行过匹配了,之后的对外层元素而言这个内层元素没有循环的意义了,所以可以将其移除减少循环次数,提高程序运行效率
List<String> aa = new ArrayList<>();
aa.add("111");
aa.add("222");
aa.add("333");
List<String> bb = new ArrayList<>();
bb.add("111");
bb.add("111");
bb.add("222");
bb.add("222");
bb.add("333");
bb.add("333");
for (String a : aa) {
ListIterator<String> stringListIterator = bb.listIterator();
System.out.println("a:"+bb.size());
System.out.println("b:"+a);
while (stringListIterator.hasNext()) {
String next = stringListIterator.next();
System.out.println("c:"+ next);
if (a.equals(next)) {
stringListIterator.remove();
}
}
}
运行结果: