Java 在arraylist中的某个位置设置和添加项时的首选项

Java 在arraylist中的某个位置设置和添加项时的首选项,java,list,arraylist,Java,List,Arraylist,我想我本质上要问的是ArrayList上这两个操作的顺序之间的差异 假设您有以下数组列表 ArrayList<String> list = new ArrayList<String>(); ArrayList<String> list2 = new ArrayList<String>(); list.add("Tom"); list.add("Jerry"); list.add(1,"Harry"); list.set(1,"Klaus"); S

我想我本质上要问的是ArrayList上这两个操作的顺序之间的差异

假设您有以下数组列表

ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();

list.add("Tom");
list.add("Jerry");
list.add(1,"Harry");
list.set(1,"Klaus");
System.out.println(list);
然后对
list2执行相同的操作,只是切换最后两条语句

list2.add("Tom");
list2.add("Jerry");
list2.set(1,"Harry");
list2.add(1,"Klaus");
System.out.println(list2);
输出

[Tom, Klaus, Jerry]
[Tom, Klaus, Harry]
当在某个
位置设置
值时
为什么
列表
位置+1
添加
一个项目,当您尝试
位置
添加一个新项目时,就像在第二个
列表
中一样。
list2不应该是吗

[Tom, Klaus]
而且不应该列出

[Tom, Klaus]
这很简单

add
在给定索引处插入新值

设置
替换给定索引处的值


查看每个语句后的输出

list.add("Tom");      // Tom
list.add("Jerry");    // Tom, Jerry
list.add(1,"Harry");  // Tom, Harry, Jerry
list.set(1,"Klaus");  // Tom, Klaus, Jerry


list2.add("Tom");      // Tom
list2.add("Jerry");    // Tom, Jerry
list2.set(1,"Harry");  // Tom, Harry
list2.add(1,"Klaus");  // Tom, Klaus, Harry
希望你现在明白了。

很简单

add
在给定索引处插入新值

设置
替换给定索引处的值


查看每个语句后的输出

list.add("Tom");      // Tom
list.add("Jerry");    // Tom, Jerry
list.add(1,"Harry");  // Tom, Harry, Jerry
list.set(1,"Klaus");  // Tom, Klaus, Jerry


list2.add("Tom");      // Tom
list2.add("Jerry");    // Tom, Jerry
list2.set(1,"Harry");  // Tom, Harry
list2.add(1,"Klaus");  // Tom, Klaus, Harry

我希望您现在就知道了。

添加:在列表中的指定位置插入指定的元素


集合:将此列表中指定位置的元素替换为指定元素。

添加:将指定元素插入此列表中的指定位置

集合:用指定的元素替换此列表中指定位置的元素