3.15

数据结构

  • 栈:先进后出
    –出入口是一个
  • 队列:先进先出
    –出入口在两侧3.15
  • 数组:查询快,增删慢
    –数组长度不可变增删都要创建新数组复制增删后的数组
    3.15
  • 链表:查询慢,增删快
    3.15
  • 红黑树:查询速度非常快3.15

Collection接口(集合)的实现

List接口

public interface List
extends Collection

Collection的子类

  • 特点:
  1. 有序–存取顺序一致
  2. 有索引
  3. 元素可重复
  • 方法:
    3.15
  • 注意事项-- 越界异常即使用超过List长度的索引
  • List集合的遍历–3中
    3.15

List的实现类

  1. ArrayList—数组实现3.15
  2. LinkedList–链表实现
    创建对象 LinkedList l=new LinkedList<>();3.15
    3.Vector --数组–单线程慢–枚举遍历

Set接口

public interface Set
extends Collection

  • 特点:和Collection方法一样
  1. 元素不重复—重写equals和hashCode方法
  2. 无索引–不能使用带索引的方法,不能使用for循环白遍历

Set实现类

多态创建对象

HashSet类

public class HashSet
extends AbstractSet
implements Set

特点:

  1. 元素不重复—必须重写hashCode和equals方法
    3.15
  2. 无索引–不能使用带索引的方法,不能使用for循环白遍历
  3. 无序集合
  4. 底层是一个哈希表结构(查询速度快啊)
  • 元素不重复的原理3.15
  • 哈希值3.15
  • 哈希表-HashSet集合存储数据的结构
    3.15
    哈希表3.15
  • HashSet存储自定义类型的元素:例如对象
    eg:3.15
LinkedHashSet集合

有序—哈希表+链表
public class LinkedHashSet
extends HashSet
implements Set

继承HashSet类实现了Set接口
3.15

Map<K,V>接口(集合)

HashMap

无序
Map的实现类

LinkedHashMap

有序—哈希表+链表
HashMap的子类-----extends HashMap<k,v>3.15
两个泛型

  • 特点:
  1. Map集合时一个双列集合,一个元素包含两个值(一个key,一个value)
  2. Map集合中的元素,key和value的数据类型可以相同,也可以不同
  3. Map集合中的元素,key是不允许重复的,value是可以重复的
  4. Map集合中的元素,key和value是一一对应的
  • 常用方法:
    3.15
    3.15
  • Map集合的遍历
    3.15
  1. 键找值:3.15
    eg:3.15
  2. 键值遍历-----Set<Map.Entry<K,V>> entrySet()
    返回此地图中包含的映射的Set视图。
    3.15
    eg:3.15

Entry接口

3.15
图解:3.15

  • Map集合存储自定义类型的键值