题目是这样的:
import java.util.*;
public class collectiontest {
public static void main(string[] args) {
treeset set = new treeset();
arraylist list = new arraylist();
vector vector = new vector();
for (int i = 0; i < 10; i++) {
set.add(i);
list.add(i);
vector.add(i);
}
system.out.println("初始化后set里的值为:" + set.tostring());
system.out.println("初始化后list里的值为:" + list.tostring());
system.out.println("初始化后vector里的值为:" + vector.tostring());
for (int i = 0; i < 5; i++) {
set.remove(i);
list.remove(i);
vector.remove(i);
system.out.println("此时set的值为" + set.tostring());
system.out.println("此时后list的值为" + list.tostring());
system.out.println("此时后vector的值为" + vector.tostring());
}
}
程序运行的结果:
初始化后 set里的值为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
初始化后list里的值为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
初始化后vector里的值为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
处理后set的值为[5, 6, 7, 8, 9]
处理后list 的值为[1, 3, 5, 7, 9]
处理后vector的值为[1, 3, 5, 7, 9]
看出来了吗,最后list和和vector得到结果不是想象的[[5, 6, 7, 8, 9]],而是[1, 3, 5, 7, 9]。
注解:
list 里两个方法:
public e remove(int index)。//每次删除一个元素,后面的元素自动全部向前移动;
public boolean remove(object o)//这个删除对象