Java:List的remove解析


  1. import java.util.*;   
  2. public class CollectionTest {   
  3. public static void main(String[] args) {   
  4.   
  5. TreeSet set = new TreeSet();   
  6. ArrayList list = new ArrayList();   
  7. Vector vector = new Vector();   
  8.   
  9. for (int i = 0; i < 10; i++) {   
  10. set.add(i);   
  11. list.add(i);   
  12. vector.add(i);   
  13. }   
  14. System.out.println("初始化后set里的值为:" + set.toString());   
  15. System.out.println("初始化后list里的值为:" + list.toString());   
  16. System.out.println("初始化后vector里的值为:" + vector.toString());   
  17.   
  18. for (int i = 0; i < 5; i++) {   
  19. set.remove(i);   
  20. list.remove(i);   
  21. vector.remove(i);   
  22.   
  23. }   
  24. System.out.println("此时set的值为" + set.toString());   
  25. System.out.println("此时后list的值为" + list.toString());   
  26. System.out.println("此时后vector的值为" + vector.toString());   
  27.   
  28. }   
  29.   
  30. }   

程序运行的结果:
初始化后 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)//这个删除对象

相关内容