微信登录

Collcetion接口 - Iterator迭代器

单列集合

java.util包

Collcetion接口继承树

  1. Collcetion 接口---------------------Iterator迭代器
  2. _______|______________________________
  3. | |
  4. List-----------ListIterator迭代器 Set
  5. ----------------------------- ---------------------
  6. | | | | |
  7. ArrayList Linkedllist Vector HashSet SortedSet
  8. | |
  9. LinkedHashSet TreeSet

Comparable对象排序接口
Comparator对象排序接口
Collcetion容器工具类

Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一

类型 中文 中文 条件 优点 缺点
List 单列 ArrayList 列表 创建时必须指定数组的大小,不能再改变 Array容量是定死的
List 单列 Linkedlist 链式列表
List 单列 Vector Vector的size会动态增长 发生变化时, 其内部的Array必须重新分配并进行拷贝
Set 单列 HashSet
Set 单列 LinkedHashSet
Set 单列 TreeSet
Map 双列 HashMap 需要额外的同步机制
Map 双列 LinkedHashMap
Map 双列 TreeMap
Hashtable
Properties
  1. public void testCollection() {
  2. // 创建Collection接口的实现
  3. Collection collection = new ArrayList<>();
  4. // 添加元素 add()
  5. collection.add("嘻嘻");
  6. String src = "????";
  7. collection.add(src);
  8. System.out.println(collection);
  9. // 创建Collection的实现
  10. Collection<String> coll = new HashSet<>();
  11. coll.add("?");
  12. coll.add("?");
  13. coll.add("?");
  14. System.out.println(coll);
  15. // 添加一个集合数据 addAll()
  16. collection.addAll(coll);
  17. // 输出集合的长度 println()
  18. System.out.println(collection);
  19. // 判断是否包含 contains()
  20. System.out.println(collection.contains("?"));
  21. // 移除元素 remove()
  22. collection.remove("?");
  23. // 移除部分元素 removeAll(list);
  24. // 添加对象
  25. collection.add(new Person("张三", 23, 5000d));
  26. // 当认为两个对象属性一致,相等时候 contains()
  27. // 需重写hashCode 和 equals方法
  28. System.out.println(collection.contains(new Person("张三", 23, 5000d)));
  29. //有没有全部都在 containsAll(list)
  30. collection.add(null);
  31. // 创建Collection接口的实现
  32. Collection<String> collection1 = new ArrayList<>();
  33. collection1.add("嘻嘻");
  34. collection1.add("?");
  35. // 求两个集合的交集(只保留collection1存在的元素)
  36. collection.retainAll(collection1);
  37. System.out.println(collection);
  38. // 清空元素clear()
  39. collection.clear();
  40. System.out.println(collection);
  41. }

Iterator迭代器

  1. Iterator iterator = coll.iterator();

不推荐

  1. iterator.next();//一个一个取,取第一个
  2. iterator.next();//一个一个取,取第二个
  1. // 或者迭代器的forEachRemaining方法
  2. collection.iterator().forEachRemaining(System.out::println);

推荐

  1. while(iterator.hasNext()){
  2. System.out.println(iterator.next());
  3. }

指针下移,返回值
iterator.remove();//移除,要next后再用

JDK5.0新特性 foreach循环遍历

  1. Collection coll = new ArrlyList();
  2. for(Object obj:coll){
  3. System.out.println(obj);
  4. }

for(类型 自定义变量:需要遍历的数组对象)

Collcetion接口 - Iterator迭代器