我想我基本上要问的是ArrayList上这两个操作的顺序之间的区别。
假设您有以下arraylists
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
做同样的事情,除了切换最后两个语句
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
上的新项目,如第二个{{1}}。不应该list2
?
[Tom, Klaus]
不应该list
[Tom, Klaus]
答案 0 :(得分:3)
非常简单
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
我希望,你现在明白了。
答案 1 :(得分:1)
add:将指定元素插入此列表中的指定位置。
set:用指定的元素替换此列表中指定位置的元素。