目录:
- 一、集合:
- 1.集合的概述
- 2.集合的分类
- 二、“单个方式”存储元素:
- 1.Collection
- 1.1 Collection的概述
- 1.2 Collection接口中常用的方法
- Iterator<T> iterator( )
- 1.3 Collection下的子接口
- 2.Iterable:
- 2.1 Iterable的概述
- 2.2 Iterable接口中常用的方法
- Iterator\<T> iterator( )
- 3.Iterator:
- 3.1 Iterator的概述
- 3.2 Iterator接口中常用的方法
- boolean hasNext( )
- T next( )
- void remove( )
- 4.List:
- 4.1 List集合的特点
- 4.2 List集合常用的“实现类”:
- ArrayList (实现类)
- LinkedList (实现类)
- Vector (实现类)
- 5.Set
- 5.1 Set集合的特点
- 5.2 Set集合常用的“实现类”
- HashSet (实现类)
- TreeSet (实现类)
- 5.3 Set集合下的"子接口"
- SortedSet
一、集合:
1.集合的概述
集合实际上就是一个容器,可以来 容纳其他类型的数据。
集合是一个载体,可以 一次容纳多个对象。集合中存储的是 引用数据类型。
集合 不能 直接存储基本数据类型,集合也 不能 直接存储java对象,集合中存储的都是java对象的内存地址。(集合中存储的是引用)
在实际开发中,假设连接数据库,数据库中有10条记录,假设把10条记录查询出来,在java程序会将10条数据封装成java对象,然后将java对象放进某个集合中, 将集合传到前端,然后遍历集合,将一个一个数据展现出来。 集合在这一过程中起到承载的作用。
使用不同的集合等于使用不同的数据结构。
java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到不同的数据结构 ( 数据存储的结构 ) 中,不同的数据结构,数据存储的方式不同。 如:数组、二叉树、链表、哈希表 这些都是常见的数据结构。new ArrayList(); //创建一个集合,底层是“数组”。 new LinkedList(); //创建一个集合,底层是“链表”。 new TreeSet(); //创建一个集合,底层是“二叉树”。
2.集合的分类
Java中 集合分类两大类:①以 “单个方式” 存储元素。 ②以 “键值对” 的方式存储元素。
以 “单个方式” 存储元素 :
“单个方式”存储元素,这“一类集合”的超级父接口是 : Collection。
(拓展:Collection接口本身的父接口:Iterable)
以 “键值对方式” 存储元素:
以“键值对”方式存储元素,这一类集合中超级父接口:java.util.Map。
二、“单个方式”存储元素:
1.Collection
1.1 Collection的概述
Collection : 是一个接口。
Collection : 是以“单个方式”存储元素的 “这一类集合” 的 超级父接口。
Collection 接口本身也是有父接口的,其的父接口是: Iterable接口。
可通过调用 iterator( )方法获得 “迭代器” 对象,获得迭代器对象的目的: 迭代/遍历 集合中的元素。
Collection 和 iterator 有关联关系。
1.2 Collection接口中常用的方法
Iterator iterator( )
- Iterator iterator( ) : 调用该iterator( )方法能返回一个 Iterator (迭代器)对象。获得迭代器对象的目的: 迭代/遍历 集合中的元素。
- 本质上:iterator( )方法是 Iterable接口中的方法,因Collection接口继承了Iterable接口,所以Collection也能调用该方法。
1.3 Collection下的子接口
Collection下的子接口有 :List、Set 等。
List、Set接口下有对应的实现类。
2.Iterable:
2.1 Iterable的概述
- Iterable : 是一个接口。Iterable 接口是 Collection 接口的 父接口。
- Iterable:可 迭代 的、可 遍历 的,所有集合都继承Iterable的含义是:所有集合都是可迭代的。
2.2 Iterable接口中常用的方法
Iterator<T> iterator( )
- Iterator iterator( ) : 调用该 iterator( ) 方法能返回一个 Iterator (迭代器)对象。
- 该iterator( )方法是Iterable接口本身拥有的方法。
3.Iterator:
3.1 Iterator的概述
- Iterator: 是一个接口。Iterator是集合的 迭代器对象。
- Iterator作为迭代器对象,其作用是:迭代/遍历集合。
3.2 Iterator接口中常用的方法
boolean hasNext( )
- boolean hasNext( ) : 如果仍有元素可以迭代,则返回 true。
T next( )
- T next( ) : 返回迭代的下一个元素。
void remove( )
- void remove( ) :从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
4.List:
4.1 List集合的特点
List集合存储元素的特点:
1.有序。有序说的是: 存进来是这个顺序,取出来也是这个顺序。(先进先出)。有序是因为List集合都有下标,下标从0开始,以1递增。
2.可重复。集合中元素 可重复出现。
3.存储的元素 “有” 下标。下标从0开始,以1递增。
4.2 List集合常用的“实现类”:
ArrayList (实现类)
- ArrayList集合底层采用了 “数组” 这种数据结构。
- ArrayList是 非线程安全 的。
LinkedList (实现类)
- LinkedList集合底层采用了“双向链表”这种数据结构。
Vector (实现类)
- Vector集合底层采用了 “数组” 这种数据结构。
- Vector是 线程安全 的。Vector所有的方法都有 synchronized 关键字修饰,所以是线程安全的,但是效率太低,现在保证线程安全有别的方案,Vector使用较少了。
5.Set
5.1 Set集合的特点
Sett集合存储元素的特点:
1.无序。无序说的是:无序表示存进去是这个顺序,取出来就不一定是这个顺序了。
2.不可重复。集合中元素 不可重复出现。
3.存储的元素 “没有” 下标。
5.2 Set集合常用的“实现类”
HashSet (实现类)
- HashSet类是Set接口的实现类。
- 实际上HashSet集合在new的时候,底层实际上new了一个HashMap集合。向HashSet中存储元素,实际上存储到HashMap集合中。
- HashMap集合是一个哈希表数据结构。
TreeSet (实现类)
- TreeSet类是SortedSet接口的实现类。
- TreeSet集合 底层 实际上是 TreeMap。new TreeSet集合时,底层实际上new了一个TreeMap集合,往TreeSet集合中放数据时,实际上是将数据放到TreeMap集合中。
- TreeMap集合底层采用了 “二叉树” 数据结构。
5.3 Set集合下的"子接口"
SortedSet
- SortedSet集合存储元素的特点:
由于继承了Set集合,所以它的特点是:也是 无序不重复,但是放在SortedSet集合中的元素可以自动排序,成为有序集合。放到该集合中的元素是自动按照大小顺序排序的。