首先 Collection 是一个接口
如同 List set 一样
1、Collection是 Set List Queue和 Deque的接口
Queue: 先进先出队列
Deque: 双向链表
以上谈及均为接口 可在码代码时导入 利用多态 接口指向类实例化对象
谈及双向链表和队列 就不得不提及linkedlist 这个类 也实现了队列及链表的有关方法
注:Collection和Map之间没有关系,Collection是放一个一个对象的,Map 是放键值对的
注:Deque 继承 Queue,间接的继承了 Collection
Map 也是接口
set 和 Map 的关系可以说是十分亲密了 set 只能单个对象存储 重复的不会被存放 而Map键值对 键是唯一的。
HashMap 这个类就实现了Map接口
以下是关系图:
接口与接口不能实现,只能继承。继承接口后可以增加新的方法,类实现接口,实现接口需要重写方法
接口之间是支持多重继承的 但不是接口实现接口
源码展示:
public interface Deque extends Queue
public interface Queue extends Collection
public interface Collection extends Iterable
2、Collections类
Collections是一个类,容器的工具类,就如同Arrays是数组的工具类
因此 会如Arrays一样提供一些方法
简单提及Collections 类里的几个方法:
建立在List接口实现Arraylist 类实例化对象
1、reverse 使List中的数据发生翻转
Listnumbers = new ArrayList<>(); Collections.reverse(numbers);
2、shuffle 混淆List中数据的顺序
也就是打乱数据的排序
Collections.shuffle(numbers);
3、sort 对List中的数据进行排序
4、swap 交换两个数据的位置
和之前学的subString 以及指定位置截取 或者添加 查看 用法一样
Collections.swap(numbers,0,5);
把 下标为 0 和 5 的元素进行换位
5、滚动
rotate 把List中的数据,向右滚动指定单位的长度
这个就挺有意思了 注意这里是指定向右滚动 就把这一组数据想象成闭合的 右滚动最后到最前。
Collections.rotate(numbers,2); 后面的参数时滚动的单位长度
6、线程安全化
方法——synchronizedList 是把非线程安全的List转换为线程安全的List。
Listnumbers = new ArrayList<>(); System.out.println("把非线程安全的List转换为线程安全的List"); List synchronizedNumbers = (List ) Collections.synchronizedList(numbers);
这样的用途可以理解为加一层保险



