集合(Collection)的概念:是指具有某种特定性质的具体的或抽象的对象汇总成的集体,这些对象称为该集合的元素。
- 集合与对应思想:是整体与个体、整体与整体、个体与个体关系的反映。
- 集合中只能保存对象(保存对象的引用变量)===>解释:对象放入集合中后,系统会把所有集合元素自动默认为(Object类)类的实例进行处理。
- 泛型限制集合里元素的类型,并让集合记住所有元素的类型。====>理解:物以类聚!!eg:特定的容器容纳特定的类型的物体,排斥其他类型的物体。强行的容纳,容器或者物体将会损坏。容器类型和物体类型是相互匹配的
- 框架的定义:框架就是一组相互协作的类。
Collection接口:集合框架的顶级接口,同时是一个泛型接口。
List接口:有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。List接口 是Collection的子接口,因此继承了Collection的所有方法,在此基础上扩展的方法都与索引有关。
ArrayList是List接口的实现类,里面的元素采取数组方式存储—>连续内存存储。与数组的区别主要在于,数组是定长而 ArrayLis变长。
- 常用方法:add(Object o);->集合中添加数据
- remove(Object o)->删除集合中的数据
- add(int index, Object element)->给集合中某个索引位置添加一个数据
- get(int index)->获取集合中某个位置的信息
LinkedList既是List接口的实现类也是Queue接口的实现类,实现了链表的数据结构。
- LinkedList是以链表的方式存放的,每个节点上存放的是数据信息
- 常用方法:add(E element)—向链表末尾添加一个新的节点,该点中的数据是参数element指定的对象。
- add(int index, E element)—向链表的指定位置添加一个新的 节点,该节点中的数据是参数element指定的对象。
- 扩展的方法:addFirst(E element)—向链表的头添加新节点,该节点中的数据是参数element指定的对象。
- addLast(E element)—向链表的末尾添加新节点,该节点中 的数据是参数element指定的对象。
- ArrayList与LinkedList的主要区别是,ArrayLis读写速度更快,LinkedList插入与删除数据更快。
Queue接口:Queue是Collection的子接口,具有所有集合基本操作。特点是“先进先出”。理解:排队过巷道,先进去的先通过出来。只允许头(取出元素,即通过巷道)尾(添加元素,即继续排队)操作,不允许插队!!
- Set接口:是无序集合,集合中的元素不可以重复。解释:访问集合中的元素时,只能直接元素本身,因此元素不可以重复。
- HashSet是Set接口的实现类。按照哈希算法来存取对象,当向集合中加入一个新对象时,会调用对象的hashCode()方法得到对象的哈希码,然后根据这个码计算出对象在集合中存储的位置。基于HashMap实现。
- HashSet的常用方法:add(E o)将指定的元素添加到 set
- TreeSet是Set接口的实现类。存储的对象必须实现Comparable接口。相对与HashSet访问速度慢,性能相对低。但是可以根据元素的某一属性实现排序。(基于Set接口的子接口SortedSet实现排序)
- TreeSet的常用方法: add(E o)将指定的元素添加到 set(如果尚未存在于该set中)。
- HashSet是Set接口的实现类。按照哈希算法来存取对象,当向集合中加入一个新对象时,会调用对象的hashCode()方法得到对象的哈希码,然后根据这个码计算出对象在集合中存储的位置。基于HashMap实现。
Map接口:Map也是顶级接口,用来保存键值对。即:Map存的是一对一对的数据。
Map中保存的是键值对Map< key,Value> ,Key值不允许重复。
- 常用方法: put(K key,V value)该方法可以将key
和value存到Map对象
get(Object key)该方法可以根据key值返回对应的value。
size()返回Map对象中键值对的数量。
- 常用方法: put(K key,V value)该方法可以将key
Entry接口:
- HashMap:HashMap通过hashcode对其内容进行快速查找, HashMap中元素的排列顺序是不固定的。
- HashMap的常用方法
- put< key,value>—>存放对象
- get(key); —>获取key所对应的数据。
- keySet() —> 返回此映射中所包含的键的 set 视图。
- TreeMap:TreeMap中所有的元素都保持着某种固定的顺序,如果需要得到一个有序的Map就应该使用TreeMap.
- 适用于按自然顺序或自定义顺序遍历键(key)。
TreeMap根据key值排序,key值需要实现Comparable接口,
实现compareTo方法。TreeMap根据compareTo的逻辑,对
key进行排序。
- 适用于按自然顺序或自定义顺序遍历键(key)。
- Collections类: 是集合类的工具类,与数组的工具类Arrays类似
定义了大量静态方法
同步集合对象的方法
对List排序的方法 - Collections方法的介绍
—同步集合的方法
Set synchronizedSet(Set s) 返回由指定 set 支持的同步(线程安全)的set。
Map
Iterator接口:迭代器。
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}