我在Java中创建了类型String []
,我想在其中添加元素。但由于[]
是一种原始类型,我无法直接在其中添加元素,因此我尝试将其设为ArrayList
以及list
,因此我写了{{1}但是,为什么我不允许这样做?
答案 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");
你想要的次数(直到你的内存耗尽)。将值和值放入集合的操作与数组索引语法不同,但提供了所有相同的操作,并且附加的好处是集合没有可用内存以外的最大大小。
的链接答案 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()
方法的列表长度。
我希望这能帮到你,
此致