java中差异列表中的ArrayList

时间:2013-10-02 21:25:36

标签: java

我在Java中创建了类型String [],我想在其中添加元素。但由于[]是一种原始类型,我无法直接在其中添加元素,因此我尝试将其设为ArrayList以及list,因此我写了{{1}但是,为什么我不允许这样做?

3 个答案:

答案 0 :(得分:1)

ArrayList<String>是与String[]不同的数据结构。

声明

String[] arr = new String[10];

String分配一个固定长度的引用数组,并在arr中存储对该数组的引用。但是,声明

ArrayList<String> arrlist = new ArrayList<String>();

声明一个ArrayList集合,能够保存可变数量的String引用。最重要的是,你可以

arrlist.add("this is a string");

你想要的次数(直到你的内存耗尽)。将值和值放入集合的操作与数组索引语法不同,但提供了所有相同的操作,并且附加的好处是集合没有可用内存以外的最大大小。

以下是Java Collections Tutorial

的链接

答案 1 :(得分:0)

当你写ArrayList[]时,它是ArrayList的数组。此外,ArrayList为generic,这就是list = ArrayList[]无效的原因。

您需要的是ArrayList<String> list = new ArrayList<String>();并使用String string = list.get(index)访问值。

答案 2 :(得分:0)

String是一种类型,String []是其他类型(字符串类型的数组),而字符串列表是另一种类型,需要一些额外的声明。基本上,您不能将一种类型的对象与另一种类型的变量对齐。

在您的示例的快速指南中,Java定义了一个名为List(java.util.List)的接口。但是这个接口是由几个类(ArrayList,LinkedList,...)实现的。一个正确的使用方法应该是:

String[] fixedStrings = new String[3]; // You only can contains 3 strings in it
fixedStrings[0] = "x";
fixedStrings[1] = "y";
fixedStrings[2] = "z";

List<String> manyStrings = new ArrayList<String>(); // List of variable length
manyStrings.add("a");
manyStrings.add("b");
manyStrings.add("c");
manyStrings.add("d");
manyStrings.add("e");

manyStrings.delete(1); // This delete "b" element

然后列表的长度会有所不同,以便添加/删除其中的元素。您可以检查调用其.size()方法的列表长度。

我希望这能帮到你,

此致