我想我本质上要问的是 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);
输出
[Tom, Klaus, Jerry]
然后对 list2
执行同样的操作except switch 最后两条语句
list2.add("Tom");
list2.add("Jerry");
list2.set(1,"Harry");
list2.add(1,"Klaus");
System.out.println(list2);
输出
[Tom, Klaus, Harry]
当值为set
时在某些posiotion
为什么 list
add
position+1
的项目当您尝试 add
新商品位于position
如第二个list
。不应该list2
是?
[Tom, Klaus]
不应该list
有
[Tom, Klaus]
最佳答案
很简单
add
在给定索引处插入新值
和
set
替换给定索引处的值。
查看每个语句后的输出。
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
我希望,你现在明白了。
关于java - 在数组列表中的某个位置设置和添加项目时的首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22900060/