22、集合(Collection)

一、集合(Collection)

1、简介

  Collection是一个接口,其定义了集合的相关功能方法。Collection继承了Iterable接口,而Iterable接口有一个方法Iterator<T> iterator(); 其中Iterator也是一个接口,里面定义了3个方法boolean hasNext();E next(); void remove();

2、Collection派生接口List和Set

  List:可重复集,顾名思义,该集合中是允许存放重复元素的,那么何为重复元素?重复元素指的并非是同一个元素,而是指equals方法比较为true的元素。

  Set:不可重复集合。

3、集合持有对象的引用

4、Collection常用方法

  ①:boolean add(E e) 该方法会将给定的元素添加进集合,若添加成功则返回true,否则返回false

  ②:boolean contains(Object o)该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。这里需要注意的是,集合在判断元素是否被包含在集合中是使用元素的equals的比较结果。

  ③:int size()返回集合元素的个数

  ④:void clear() 清空集合中的元素

  ⑤:boolean isEmpty() 判断集合是否为空集合

  ⑥:boolean containsAll(Collection<?> c) 判断当前集合是否包含给定集合中的所有元素,若包含则返回true。

  ⑦:boolean addAll(Collection<? extends E> c) 添加集合中所有元素

  ⑧:Object[] toArray():将Collection元素保存到数组中

5、Iterator迭代器

  ①:通过迭代器遍历集合

   通过方法Iterator iterator()返回一个迭代器接口,在通过Iterator接口的hasNext和Next方法来遍历集合

     例如:

Collection c =new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
Iterator iterator= c.iterator();
    while(iterator.hasNext()){
    System.out.println(iterator.next());
}
View Code

     遍历集合应遵循“先问后取”

     ②:通过迭代器删除某个元素

Collection c =new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
Iterator iterator= c.iterator();
while(iterator.hasNext()){
    Object obj=iterator.next();
    if(obj.toString().equals("three")){
        iterator.remove();
    }
}
System.out.println(Arrays.toString(c.toArray()));

结果为:[one, two, four, five]
View Code

    需要注意,在使用迭代器遍历集合时是不能通过集合自身提供的remove方法删除元素的,否则迭代器在迭代时会抛出异常

     ③:通过for循环遍历集合

for(Object o:c){
    System.out.println(o);
}
View Code
原文地址:https://www.cnblogs.com/caoyc/p/4546995.html