双重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();
                }
            }
        }

运行结果:

运行结果.png
上一篇下一篇

猜你喜欢

热点阅读