Java固定数组中的元素数

时间:2011-11-19 15:07:47

标签: java

当我在Java中创建数组时 - int array []和array = new int [some number] -

如果我不知道它将保留多少个值以便我有足够的空间,我该如何构建呢?

3 个答案:

答案 0 :(得分:10)

在这种情况下,您可能想要使用ArrayList或其他一些动态集合。 您不必提及ArrayList的大小,您可以在运行时添加任意数量的元素。大小动态增长。

声明

List arrayList = new ArrayList();

如果使用JDK 1.5或更高版本,那么您还可以提及此列表将包含的元素类型。

List<String> arrayList = new ArrayList<String>();

http://www.roseindia.net/java/beginners/array_list_demo.shtml

答案 1 :(得分:0)

ArrayList是最简单的答案,但是如果你想要一种更节省内存的方法,你可以使用TIntArrayList(包装int[]

答案 2 :(得分:0)

对于增长数组,请使用ArrayList

如果数组应包含基本类型,则可以将它们包装起来:

ArrayList<Integer> array = new ArrayList<Integer>();

array.add(new Integer(4));
array.add(new Integer(-5));
array.add(new Integer(4));
array.add(new Integer(2));

但是,当值发生很大变化时,您会继续实例化并丢弃Integer实例,因为它是不可变的。它的表现也不是很高。

我的解决方案:使用公共值字段自己创建一个包装器。

这是我的包装器,它也适用于TreeMap和类似的东西,它们按照自然顺序对项目进行排序。

public class MyInteger implements Comparable<MyInteger>
{
    public int  value;

    public MyInteger(int value)
    {
        this.value = value;
    }

    @Override
    public String toString()
    {
        return Integer.toString(value);
    }

    @Override
    public int compareTo(MyInteger o)
    {
        return value - o.value;
    }
}

现在你可以做类似的事情:

array.get(2).value++;