美文网首页
双重for循环优化(仅适用于单线程)

双重for循环优化(仅适用于单线程)

作者: DKing丶 | 来源:发表于2021-03-29 16:17 被阅读0次

    使用迭代器来删除,内层循环(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

    相关文章

      网友评论

          本文标题:双重for循环优化(仅适用于单线程)

          本文链接:https://www.haomeiwen.com/subject/dgpbhltx.html