Java ArrayList 索引

30
int[] alist = new int [3];
alist.add("apple");
alist.add("banana");
alist.add("orange");

假设我想使用ArrayList中的第二个项目。为了获得以下输出,应该如何编码?

输出:

香蕉


9
你的代码无法编译:alist 是一个数组,但你却像使用 List 一样使用它——这是不可能的,因为 alist 是整数类型。你不能将字符串赋值给它。 - Ralph
7个回答

110

你对ArrayList的理解是错误的,

  • 你不能创建一个整型数组并赋予字符串值。
  • 你不能在数组中使用add()方法。

正确的做法:

List<String> alist = new ArrayList<String>();
alist.add("apple");
alist.add("banana");
alist.add("orange");

String value = alist.get(1); //returns the 2nd item from list, in this case "banana"

索引从0N-1进行计数,其中N是列表的size()


20

阅读有关数组ArrayList的更多信息。

List<String> aList = new ArrayList<String>();
aList.add("apple");   
aList.add("banana");   
aList.add("orange");   
String result = alist.get(1);  //this will retrieve banana

注意:索引从0开始,即零。


9

使用数组:

String[] fruits = new String[3]; // make a 3 element array
fruits[0]="apple";
fruits[1]="banana";
fruits[2]="orange";
System.out.println(fruits[1]); // output the second element

使用列表

ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("orange");
System.out.println(fruits.get(1));

5

与所有类C语言的数组一样。索引从0开始。因此,苹果是0,香蕉是1,橙子是2等。


5
为了在动态数组(add-method)中存储字符串,你不能将其定义为整数数组(int[3])。你应该像这样声明它:
ArrayList<String> alist = new ArrayList<String>();
alist.add("apple"); 
alist.add("banana"); 
alist.add("orange"); 

System.out.println( alist.get(1) );

3

原始数组和基于对象的集合(例如ArrayList)之间的主要区别在于后者可以动态增长(或缩小)。原始数组的大小是固定的:一旦创建,它们的大小不会改变(尽管内容可以改变)。


2

这是我会如何写它。

String[] fruit = "apple banana orange".split(" ");
System.out.println(fruit[1]);

6
你是不是不太认真?为什么不把你的第一行写成String[] fruit = "applesbananasorange".replace('s', ' ').split(" ");呢?如果已经有CPU,就应该使用它。 - Mot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接