如何在Java列表中删除对象?

时间:2013-12-14 15:25:50

标签: java arrays

我有一个现有代码,其中写入的行是

 private Rule[] ruleList;

规则是 CLASS

我想删除ruleList中添加的所有规则。

但是当我点击它时它显示如下 enter image description here

如果是List,我该如何从ruleList中删除这些规则?

由于

3 个答案:

答案 0 :(得分:3)

ruleList是一个数组而不是List。因此,您将找不到clear方法。

但你可以使用

Arrays.fill(ruleList, null);

答案 1 :(得分:0)

你有一个数组,而不是一个列表。解决方案:

ruleList = new Rule[ruleList.length];

答案 2 :(得分:0)

要从List使用clear()

中删除所有项目

如果要从List中删除数组中的所有项目,请使用remove方法。

示例

public class Rules {


    public static void main(String[] args) {
        Rule[] rules = new Rule[2];
        rules[0] = new Rules.Rule();
        rules[1] = new Rules.Rule();

        //Scenario 1
        List<Rule> ruleList = new ArrayList<Rule>();
        ruleList.add(Arrays.asList(rules)); //adds array to list
        ruleList.clear(); //removes all items from List


        //Scenario2
        ruleList.add(Arrays.asList(rules)); //adds array to list
        ruleList.remove(Arrays.asList(rules));  //remove all rules in [] form list

        //Scenario3
        Arrays.fill(rules, null); //removes all elements in array
    }

    static class Rule{

    }
}

确定您使用的是List还是Array非常重要。提供的代码描述了一个数组,但是该措辞不断引用List

如果您实际拥有List并想要删除所有元素,请参阅示例中的方案1。 如果您实际拥有List并希望从List中删除数组中的所有元素,请参阅示例中的方案2。 如果您确实有数组并想要从数组中删除所有元素,请参阅示例中的方案3。