3.15
数据结构
- 栈:先进后出
–出入口是一个 - 队列:先进先出
–出入口在两侧 - 数组:查询快,增删慢
–数组长度不可变增删都要创建新数组复制增删后的数组 - 链表:查询慢,增删快
- 红黑树:查询速度非常快
Collection接口(集合)的实现
List接口
public interface List
extends Collection
Collection的子类
- 特点:
- 有序–存取顺序一致
- 有索引
- 元素可重复
- 方法:
- 注意事项-- 越界异常即使用超过List长度的索引
- List集合的遍历–3中
List的实现类
- ArrayList—数组实现
- LinkedList–链表实现
创建对象 LinkedList l=new LinkedList<>();
3.Vector --数组–单线程慢–枚举遍历
Set接口
public interface Set
extends Collection
- 特点:和Collection方法一样
- 元素不重复—重写equals和hashCode方法
- 无索引–不能使用带索引的方法,不能使用for循环白遍历
Set实现类
多态创建对象
HashSet类
public class HashSet
extends AbstractSet
implements Set
特点:
- 元素不重复—必须重写hashCode和equals方法
- 无索引–不能使用带索引的方法,不能使用for循环白遍历
- 无序集合
- 底层是一个哈希表结构(查询速度快啊)
- 元素不重复的原理
- 哈希值
- 哈希表-HashSet集合存储数据的结构
哈希表 - HashSet存储自定义类型的元素:例如对象
eg:
LinkedHashSet集合
有序—哈希表+链表
public class LinkedHashSet
extends HashSet
implements Set
继承HashSet类实现了Set接口
Map<K,V>接口(集合)
HashMap
无序
Map的实现类
LinkedHashMap
有序—哈希表+链表
HashMap的子类-----extends HashMap<k,v>
两个泛型
- 特点:
- Map集合时一个双列集合,一个元素包含两个值(一个key,一个value)
- Map集合中的元素,key和value的数据类型可以相同,也可以不同
- Map集合中的元素,key是不允许重复的,value是可以重复的
- Map集合中的元素,key和value是一一对应的
- 常用方法:
- Map集合的遍历
- 键找值:
eg: - 键值遍历-----Set<Map.Entry<K,V>> entrySet()
返回此地图中包含的映射的Set视图。
eg:
Entry接口
图解:
- Map集合存储自定义类型的键值