我有几个问题需要解决。在这部分代码中, al.add(1," A2");添加1对ArrayList做了什么?在输出中,它看起来不像添加1对arraylist做了任何事情。另外,在代码的这一部分中,al.remove(2);似乎是从arraylist中删除A,但为什么呢?不应该是3,因为它排在第三位?
import java.util.*;
public class ArrayListDemo
{
public static void main(String args[])
{
// create an array list
ArrayList al = new ArrayList();
System.out.println("Initial size of al: " + al.size());
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
al.add(1, "A2");
System.out.println("Size of al after additions: " + al.size());
// display the array list
System.out.println("Contents of al: " + al);
// Remove elements from the array list
al.remove("F");
al.remove(2);
System.out.println("Size of al after deletions: " + al.size());
System.out.println("Contents of al: " + al);
}
}
以下是代码的输出:
Initial size of al: 0
Size of al after additions: 7
Contents of al: [C, A2, A, E, B, D, F]
缺失后的al大小:5
Contents of al: [C, A2, E, B, D]
答案 0 :(得分:1)
al.add(1, "A2");
在索引1中添加A2
。记住ArrayList
以索引0开头,因此输出恰到好处。与al.remove(2);
相同。它删除了E
的第3项。
点击以下指向read more about the add method和remove method的链接。
答案 1 :(得分:1)
第一个索引是0.当您在位置1
处添加时,它会将其作为第二个项目,当您移除位置2
时,您将删除第三个位置。
答案 2 :(得分:1)
al.add的第一个参数(1," A2");是索引。 所以,如果我有这样的事情:
[C,A,E,B,D,F]
我添加 al.add(1," A2");
我得到[C,A2,A,E,B,D,F]
第二个问题。
和数组或列表从索引0开始 所以这是 0 1 2 3 4 ....
所以,当我有这个:
[C,A2,A,E,B,D,F]
C在索引0中 A2在索引1中 和A在索引2
所以删除(2) 删除A
答案 3 :(得分:1)
ArrayLists和List都从索引0开始,所以当你这样做时
al.add(1, "A2");
您正在第二个位置插入A2
,下方的所有其他元素都将向下移动。
当您删除2
时,您正在删除第三项,并且下面的所有项目都会向上移动
答案 4 :(得分:1)
让我们稍微介绍一下代码......
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
生成
列表["C", "A", "E", "B", "D", "F"]
//0 1 2 3 4 5
则...
al.add(1, "A2");
将"A2"
添加到此1
的位置,因此我们现在有一个
["C", "A2", "A", "E", "B", "D", "F"]
//0 1 2 3 4 5 6
则...
al.remove("F");
从列表中删除条目"F"
...
["C", "A2", "A", "E", "B", "D"]
//0 1 2 3 4 5
然后......
al.remove(2);
删除" A
"从列表中,因为" A
"是索引2
的项目,请记住,Java是零索引
["C", "A2", "E", "B", "D"]
//0 1 2 3 4
仔细看看:
了解更多详情
答案 5 :(得分:0)
首先,几乎所有Java中的索引都是从0开始。
所以如果你有这个数组:
int[] example = {45, 33, 76, 21, 54};
然后示例[1]实际上等于SECOND元素 - 33!
所以,给你更多例子:
example[0] == 45
example[1] == 33
example[2] == 76
example[3] == 21
example[4] == 54
现在,让我们谈谈令你困惑的方法。
arrayList.add(index, item);
导致:al的内容:[C,A2,A,E,B,D,F]
所以在这里,你传递的第一件事是索引。第二件事是项目。索引是您添加新项目的位置。您将把新项目放入该索引中,并将其他所有内容移回其中。
所以,在你的例子中,你有:
arrayList.add(1,"A1");
结果是对的!术语" A1"在位置索引1中添加(记住,实际上是java中的第二个位置,因为你总是从0开始计数),其他一切都被1推回。
我希望这会有所帮助。祝你好运:)
答案 6 :(得分:0)
您应该记住索引从0开始,但不是1.例如,
List list = new ArrayList();
list.add("a");
list.add("b");
如果您想在列表中获取第一个元素“a”,则必须执行此操作:list.get(0)
,但不是list.get(1)