Collection 接口及其常用方法

打印 上一主题 下一主题

主题 921|帖子 921|积分 2763

Collection 接口及其常用方法

Collection 接口的特点

Collection接口没有直接实现类,提供了更具体的子接口(如Set和List)的实现。Collection实现类(通常通过其中一个子接口间接实现Collection)可以存放多个 Object 类型的元素。有些Collection接口的实现类可以存放重复的元素(List),有些则不可以(Set)。有些Collection接口的实现类是有序的(List),有些是无序的(Set)。
所有通用的Collection实现类都会提供两个"标准"构造方法:一个无参构造方法,来创建一个空的集合;以及一个带有单个Collection类型参数的构造方法,创建一个与参数集合具有相同元素的新集合。实际上,后一种构造方法可以复制任何集合,生成一个与参数集合元素相同的所需类型的集合。
  1. public class CollectionConstructors() {
  2.   public static void main(String[] args) {
  3.     ArrayList list = new ArrayList();
  4.     System.out.println("list = " + list); // list = []
  5.        
  6.         list.add(1);
  7.         list.add(2);
  8.         list.add(3);
  9.         System.out.println("list = " + list); // list = [1, 2, 3]
  10.         Vector<Object> vector = new Vector<>(list);
  11.         System.out.println("vector = " + vector);  // vector = [1, 2, 3]
  12.   }
  13. }
复制代码
Collection 接口常用方法

下面的代码以其间接实现类ArrayList演示Collection接口的常用方法。
  1. public class CollectionMethod() {
  2.   public static void main(String[] args) {
  3.     Collection collection = new ArrayList<>();
  4.    
  5.     // boolean add(E e)
  6.     // 给集合中添加指定的元素,添加成功则返回 true。如果此集合不允许重复元素并且已经包含了指定的元素,
  7.     // 则返回 false。支持此操作的实现类可能会对添加到该集合中的元素进行限制。如果一个集合拒绝添加某个
  8.     // 特定元素的原因不是因为集合已经包含该元素,会抛出一个异常(而不是返回 false)。
  9.     collection.add("hello");
  10.     collection.add(10);
  11.     collection.add(true);
  12.     System.out.println("collection = " + collection); // collection = [hello, 10, true]
  13.    
  14.     // boolean remove(Object o)
  15.     // 从集合中移除指定元素的一个实例。如果集合包含多个满足 (o==null ? e==null : o.equals(e))条件的元素 e,
  16.     // 则移除第一个元素 e。移除完成后返回 true。
  17.     collection.remove("hello");
  18.         System.out.println("collection = " + collection); // collection = [10, true]
  19.    
  20.     // boolean contains(Object o)
  21.     // 如果此集合包含指定元素,则返回 true。更准确地说,当且仅当此集合包含至少
  22.     // 一个满足(o==null ? e==null : o.equals(e))条件的元素 e 时,返回 true。
  23.     System.out.println(collection.contains(10));// true
  24.    
  25.     // int size()
  26.     // 返回此集合中的元素数量
  27.     System.out.println(collection.size());// 2
  28.    
  29.     // boolean isEmpty()
  30.     // 判断集合是否为空
  31.     System.out.println(collection.isEmpty());// false
  32.    
  33.     // void clear()
  34.     // 清空集合中的元素
  35.     collection.clear();
  36.     System.out.println("collection = " + collection); // collection = []
  37.    
  38.     // boolean addAll(Collection<? extends E> c)
  39.     // 将指定集合中的所有元素添加到此集合中
  40.     Collection collection1 = new ArrayList();
  41.     collection1.add("Mary");
  42.     collection1.add("Luck");
  43.     collection.addAll(collection1);
  44.     System.out.println("collection = " + collection); // collection = [Mary, Luck]
  45.    
  46.     // boolean containsAll(Collection<?> c)
  47.     // 判断此集合是否包含指定集合中的所有元素
  48.     System.out.println(collection.containsAll(collection1));// true
  49.     // boolean removeAll(Collection<?> c)
  50.     // 从此集合中移除与指定集合中相同的所有元素。在此调用返回后,此集合将不包含与指定集合共有的任何元素。
  51.     collection.add("King");
  52.     collection.removeAll(collection1);
  53.     System.out.println("collection = " + collection); // collection = [King]
  54.   }
  55. }
复制代码
Collection 接口遍历元素方式

使用 Iterator(迭代器)

Iterator接口是集合的迭代器,主要用于遍历Collection集合中的元素。所有实现了Collection接口的实现类,都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器。
Iterator接口的方法:
[code]// 判断是否还有下一个元素boolean hasNext()  // 返回集合中的下一个元素E next()// 从底层集合中移除此迭代器返回的最后一个元素。每次调用 next() 只能调用此方法一次。// 如果在调用此方法之前尚未调用过 next() 方法,或者在最后一次调用 next() 方法之后// 已经调用了过一次 remove() 方法,则抛出 IllegalStateException 异常。default void remove() // 对剩余的每个元素执行给定的操作,直到所有元素被处理完或操作抛出异常为止。default void forEachRemaining(Consumer
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表