一、集合(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()); }
遍历集合应遵循“先问后取”
②:通过迭代器删除某个元素
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]
需要注意,在使用迭代器遍历集合时是不能通过集合自身提供的remove方法删除元素的,否则迭代器在迭代时会抛出异常
③:通过for循环遍历集合
for(Object o:c){ System.out.println(o); }