Java增加了数组大小

时间:2014-02-10 18:02:14

标签: java

我有以下代码,它根据位置采用整数并将其存储在布尔数组中。我有一个方法包括允许用户输入更多的数字到数组,但如果数字大于数组大小,那么我需要增加大小。我知道,只要改变了每个位置的数据,就不能对数组做很多事情。有没有快速的方法使它更大或我可以使用arraylists来保持阵列大小的变化?

public class ISet {
    public int max;
    boolean[] numArray;


    ISet(int a) {
        this.size = a;
        this.numArray = new boolean[size];

    }

    public void include(int n) {
        if (n > size) {
            this.size = n;
            numArray[n]=true;

        }
        else

            numArray[n]=true;


        }

4 个答案:

答案 0 :(得分:2)

如果你想让自己变得更大,可以使用Arrays.copyOf(numArray, newLength)将数组复制到指定长度的新数组中,如果新长度比原始长度长,则在末尾添加falses。

否则您可以使用ArrayList。

答案 1 :(得分:1)

您应该使用ArrayList。

普通数组在Java中具有固定的大小。

答案 2 :(得分:1)

你可以简单地使用一个ArrayList,虽然它必须是ArrayList<Boolean>而不是boolean(原始数据类型)。可能是最简单的解决方案。

另一种选择是创建一个新的更大的数组,并在超出当前数组的大小时将当前数组中的每个元素复制到新数组。

答案 3 :(得分:0)

对于“普通”代码,您应该使用ArrayList代替。

对于使用极大数组的应用程序,数组需要比ArrayList少得多的内存,因为一个Object需要比原语多4倍(16字节)的内存。

对于这种特殊情况,您可以使用Arrays.copyOf()将内容复制到新的更大的数组中。 另请参阅ArrayList.java

的src cocde