0

String []在 Java 中创建了类型,我想在其中添加元素。但是由于[]是原始类型,我不能直接向其中添加元素,因此我尝试将其设置ArrayList为 a 和 a list,所以我写了list = ArrayList[],但是为什么不允许我这样做呢?

4

3 回答 3

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 集合教程的链接

于 2013-10-02T21:34:31.847 回答
0

当你写ArrayList[]它是一个数组ArrayList。ArrayList 也是通用的,这就是为什么list = ArrayList[]不起作用的原因。

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

于 2013-10-02T21:33:21.463 回答
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()方法的列表的长度。

我希望这对你有帮助,

问候,

于 2013-10-02T21:39:48.043 回答