我String []
在 Java 中创建了类型,我想在其中添加元素。但是由于[]
是原始类型,我不能直接向其中添加元素,因此我尝试将其设置ArrayList
为 a 和 a list
,所以我写了list = ArrayList[]
,但是为什么不允许我这样做呢?
3 回答
ArrayList<String>
是与 不同的数据结构String[]
。
宣言
String[] arr = new String[10];
分配一个固定长度的引用数组,String
并将对该数组的引用存储在arr
. 然而,声明
ArrayList<String> arrlist = new ArrayList<String>();
声明一个ArrayList
能够保存可变数量String
引用的集合。最重要的是,你可以
arrlist.add("this is a string");
任意多次(直到内存不足)。将值放入和获取到集合中的操作与数组索引语法不同,但提供了所有相同的操作,另外还有一个好处是集合除了可用内存之外没有最大大小。
当你写ArrayList[]
它是一个数组ArrayList
。ArrayList 也是通用的,这就是为什么list = ArrayList[]
不起作用的原因。
您需要的是ArrayList<String> list = new ArrayList<String>();
并使用String string = list.get(index)
.
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()
方法的列表的长度。
我希望这对你有帮助,
问候,