先上图
Collection集合接口
- 集合与数组都是容器,区别是什么?
- 数组长度固定,集合可变。
- 数组中存储统一类型元素,可以存储基本数据类型值。集合只可以存储对象
- Collection接口:是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:
public boolean add(E e):把给定的对象添加到当前集合中
public void clear():清空集合中所有的元素
public boolean remove(E e):把给定的对象在当前集合中删除
public boolean contains(E e):判断当前集合中是否包含给定的对象
public boolean isEmpty():返回当前集合是否为空
public int size():返回集合中的元素的个数
public Object[] toArray():把集合中的元素,存储到数组中
- 子接口:
- List接口:
- 有序的集合;允许存储重复的元素;有索引,可以使用普通的for循环遍历
- 实现类:Vector集合;ArrayList集合;LinkedList集合
- Set接口
- 无序;不允许存储重复元素;没有索引
- 实现类:TreeSet集合;HashSet集合;
- List接口:
Iterator接口:迭代器
- 概念:对集合进行遍历
- 方法
boolean hasNext():
//如果有元素可以迭代,返回true。也就是判断集合有没有下一个元素,有则true没有flase
E next():
//返回迭代的下一个元素
- 使用方法:Iterator迭代器是一个接口,无法直接使用,需要使用实现类对象,获取实现类的方法有点特殊:
//在Collection接口中有一个方法iterator(),这个返回的就是迭代器的实现类对象
Iterator<E> iterator();
//定义格式:
Iterator<E> ite = coll.iterator();
- 集合遍历的两种方式:
- A.迭代器:(可用于没有索引的集合)
List<Integer> list = new ArrayLisy<>();
……
Iterator<Interger> ite = list.iterator();
//遍历
while(ite.hasNext() != false){
sout(ite.Next());
}
* B.增强for:
for(数据类型 变量名:容器对象){
//……
}
Collections类:
- 包:java.util.Collections:是集合工具类,用来对集合进行操作
- 方法:
public static <T> boolean addAll(Collection<T> c,T...element):往集合中添加一些元素。
public static void shuffle(List<?> list)打乱顺序:打乱集合顺序
public static <T> void sort(List<T> list)将集合中元素按照默认规则排序;
注意:当我们调用Colletions.sort()方法的时候,程序报错了。
原因是如果想要集合中元素完成排序,就必须实现Comparable接口(的compareTo方法)或Comparator接口(的compare方法)