从java中的ArrayList中删除所有特定值

时间:2018-04-05 19:34:38

标签: java arraylist

我已经为ArrayList提供了以下代码,并且必须在此类中编写一个新方法,该方法将从ArrayList中删除所有给定值。我一直在尝试编写这个函数,但由于某种原因无法弄清楚如何访问列表。我必须为LLList做同样的事情,所以我调用了头节点,但我不明白如何访问数组。

function getFrequency(str){
    var sorted = str.split("").sort();
    var data = [];
    for(var i = 0; i <sorted.length; i++){
        var last = data[data.length - 1]
        if(last && last.character === sorted[i]) last.count++;
        else data.push({character : sorted[i], count: 1});
    }

    return data;
}

1 个答案:

答案 0 :(得分:0)

为了帮助你多一点,这里有一个使用给定removeItem函数的天真解决方案(它可能更有效)。只需阅读并尝试理解它,否则您将遇到麻烦,如果您对此有疑问,请随时提问。

public void removeAll(Object o) {
    int i = 0;
    while (i < length) {
        if (o.equals(items[i])) {
            removeItem(i);
        } else {
            i++;
        }
    }
}

并测试它:

public static void main(String[] args) {

    ArrayList list = new ArrayList(10);
    list.addItem("1", 0);
    list.addItem("3", 1);
    list.addItem("2", 2);
    list.addItem("2", 3);
    list.addItem("4", 4);
    list.addItem("1", 5);
    list.addItem("2", 6);

    System.out.println(list);
    // {1, 3, 2, 2, 4, 1, 2}

    list.removeAll("2");

    System.out.println(list);
    // {1, 3, 4, 1}
}