美文网首页我遇到的面试题
删除List中指定元素

删除List中指定元素

作者: CheckBox | 来源:发表于2022-03-17 00:11 被阅读0次

    删除ArrayList中的指定元素方案

    我们准备一组测试数据。
    /*构建测试数据*/
    public static ArrayList<String> buildItems() {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("a");
        list.add("a");
        return list;
    }
    
    1、第一种方案(使用for循环)
    list = buildItems();
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i).equals("a")) {
            list.remove(i);
            // 移除后内部发生了位移,需要将指针-1。 
            --i;
        }
    }
    
    2、使用迭代器中提供的remove()函数。
    list = buildItems();
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
        if (iterator.next().equals("a")) {
            // 移除当前指针的值
            iterator.remove();
        }
    }
    
    3、使用while循环。
    list = buildItems();
    int index;
    while ((index = list.indexOf("a")) != -1) {
        list.remove(index);
    }
    

    总结:方案1、2效率是最高的,方案3,indexOf()函数,内部会多次循环。
    还有其他方案吗 ?

    相关文章

      网友评论

        本文标题:删除List中指定元素

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