集合
1.Collection接口
1.1集合前言
Java语言的java.util包中提供了一些集合类,这些集合类又称之为容器
提到容器不难想到数组,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的,数组的访问方式比较单一,插入/删除等操作比较繁琐,而集合的访问方式比较灵活常用的集合类有List集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口,各个接口还提供了不同的实现类.常用的集合类有List集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口,各个接口还提供了不同的实现类.试试试试骚骚骚
常用的集合类有List集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口,各个接口还提供了不同的实现类.
1.2集合概念
集合的英文名称是Collection,是用来存放对象的数据结构,而且长度可变,可以存放不同类型的对象,并且还提供了一组操作成批对象的方法.Collection接口层次结构 中的根接口,接口不能直接使用,但是该接口提供了添加元素/删除元素/管理元素的父接口公共方法.
由于List接口与Set接口都继承了Collection接口,因此这些方法对于List集合和Set集合是通用的.
1.3集合的集成结构
Collection接口
List接口【数据有下标,有序,可重复】
ArrayList子类
LinkedList子类
Set接口【数据无下标,无序,不可重复】
HashSet子类
TreeSet子类
Map接口【键值对的方式存数据】(非Collection子接口)
HashMap子类
TreeMap子类
1.4Collection方法表
//TODU jdk1.8 新增方法
1.5 练习:Collection接口测试
2 List接口
2.1 概述
有序的colletion(也称为序列).此接口的用户可以对列表中的每个元素的插入位置进行精确的控制,用户可以根据元素的整数索引(在列表中的位置)来访问元素,并搜索列表中的元素.
2.2特点
- 元素都有下标
- 数据是有序的
- 允许存放重复的元素
2.3List方法速查表
2.4List练习
3.ArrayList
3.1概述
- 存在java.util包中
- 内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
- 内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
- 查询快,增删数据效率会低
3.2容量规则
3.3练习ArrayList
4 LinkerList
4.1概述
链表,两端效率高,底层就是链表实现的
4.2创建对象
LinkedList()构造一个空列表
4.3常用方法
void addFirst(E e) 添加首元素
void addLast(E e) 添加尾元素E removeFirst() 删除首元素
E removeLast() 删除尾元素
E getFirst() 获取首元素
E getLast() 获取尾元素
E element() 获取首元素boolean offer(E e) 添加尾元素
boolean offerFirst(E e) 添加首元素
boolean offerLast(E e) 添加尾元素
E peek() 获取首元素
E peekFirst() 获取首元素
E peekLast() 获取尾元素
E poll() 返回并移除头元素
E pollFirst() 返回并移除头元素
E pollLast() 返回并移除尾元素
4.4LinkedList常用方法测试
5 Set
5.1 概述
- Set是一个不包含重复数据的Collection
- Set集合中的数据是无序的(因为Set集合没有下标)
- Set集合中的元素不可以重复 – 常用来给数据去重
5.2 Set集合的特点
- 数据无序且数据不允许重复
- HashSet : 底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K,存入内部的HashMap中。当然K仍然不许重复。
- TreeSet : 底层是TreeMap,也是红黑树的形式,便于查找数据
5.3 常用方法
学习Collection接口中的方法即可
5.4 HashSet
5.4.1 概述
底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K存入内部的HashMap中,其中K不允许重复,允许使用null.
5.5 Set相关测试