Java集合框架

Java平台集合框架

一、集合

集合(也称为容器)广泛用于存储、获取和处理一组紧密相关的数据,从JDK1.2版本开始,Java类库的java.util包提供了一个全新的集合框架。(如图)

虚线作用的为接口,实现作用的均为实现类
例如:collection为Iterator的子接口。

集合框架包含三个部分:

  1. Interface:接口,定义表示各种集合的抽象数据类型
  2. Implementations:实现,实现各种集合接口的具体的类。
  3. Algorithms:算法,可以用作于各种集合对象的算法(排序,查找等)。

在这里插入图片描述
Java 的集合(容器)也可以通过数组来实现,事实上,Java平台集合框架中的类都包含一个封装的对象数组。而数组是最原始的集合实现,可以用于简单的数据应用,对于复杂的数据,就应该采用集合框架中的类和接口,使操作更加便捷,简易。

二、解析集合框架图

在探究接口层的时候,一般关注点在于:元素是否可重复 元素是否可以为null 元素是否有序

  • Iterator接口
    迭代器接口,用来遍历集合中元素的接口。

  • Collection接口
    用来表示任何对象或者元素集合,每个元素只能包含单个值。可称其为列表类集合类型

  • Map接口
    用来描述从不重复的键到值的映射,每个元素都包含键/值对。可称为字典类集合类型

  • Comparator接口
    用来将集合中的数据进行排序。
    如果一个类没有实现comparable接口,或者希望使用其进行排序,可以自动以一个比较器(实现Comparator接口的类)

  • Collection子接口

    1. List接口 : 元素可重复、元素值可以为null、元素插入有序
    2. Set接口 : 元素不能重复、元素值不能为null、元素无序(插入顺序)
    3. Queue接口 : 元素值可重复、元素值不能为null、元素插入有序
  • Map子接口

    1. AbstractMap接口
    2. SortMap接口:实现按照Key的顺序排列的映射
  • 列表:

    1. ArrayList
      数组列表,封装了一个动态再分配的数组
    2. LinkedList
      链表,封装了一个双向链表。可以用来实现队列和堆栈。
    3. vector(线程安全)
      向量,也是基于数组实现,支持线程同步(即某时刻只能有一个线程访问Vector,保证了线程安全)。
    4. Stack
      堆栈,表示后进先出的对象。也可以用LinkedList实现堆栈。
  • 集:

    1. HashSet
      散列集,底层是一个哈希表,值不能重复,可以为null,值无序。
    2. TreeSet
      树集,底层是TreeMap,(红黑树),确保集合元素处于排序状态,
    3. LinkedHashSet
      链表散列集,底层是哈希表和双向链表,值不能重复,值可以为null,元素插入有序。
  • 映射表:

    1. HashMap
      散列映射表,底层为数组+链表,键不重复,值可重复,键值都可以为null,数据插入无序
    2. TreeMap
      树映射表,底层为红黑树,可实现数据有序。
    3. LinkedHashMap
      链表散列映射表,底层为哈希表和双向链表,值可以重复,键可以为null,键有序。
    4. HashTable(线程安全)
      底层为数组+链表,键值都不能为null,键不可重复,无序。
    5. WeakHashMap
      添加的元素会随着时间的推移而减少,4种Java引用:强引用,弱引用,软引用,虚引用。其调用过程会引起垃圾回收.
  • 工具类:

    1. Collections
    2. Arrays
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值