如何清空原始数组?

时间:2017-05-26 14:35:06

标签: java arrays

我有以下课程:

public class Person {

    private String id;

    private Score[] scores;

    public Person() {
    }

    //getters and setters etc
}

如何最好地删除此对象的score数组中的所有Score个对象?

4 个答案:

答案 0 :(得分:7)

重新初始化数组new Score[size]或使用Arrays.fill方法。

答案 1 :(得分:4)

我使用Arrays.fill并用空值填充数组。

Arrays.fill(scores, null);

答案 2 :(得分:1)

根据您的具体需要,有不同的选项。最简单的方法之一是将数组初始化为新数组:

 int[] scores = new Scores[]{1,2,3};
 System.out.println("scores before: " + Arrays.toString(scores));
 scores = new Scores[scores.length];
 System.out.println("scores after: " + Arrays.toString(scores));

输出:

scores before: [1, 2, 3]
scores after: [0, 0, 0]

答案 3 :(得分:0)

Arrays.fill(myArray,null); 并不是说它与你自己做的有什么不同(它只是循环遍历每个元素并将其设置为null)。它不是原生的,它是执行此操作的纯Java代码,但它是一个库函数,如果这可能是你的意思。

这当然不允许你调整数组的大小(为零),如果你的意思是“空”。数组大小是固定的,因此如果您希望“新”数组具有不同的维度,则最好只是将引用重新分配给新数组,如其他答案所示。更好的是,使用类似ArrayList的List类型,它可以有可变的大小。