从零开始学java - 第十四天

119 阅读3分钟

这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战

今天继续~

集合框架

集合框架是一个用来代表和操纵集合的统一架构

集合框架要满足几个目标:

  • 高性能
  • 允许不同类型的集合
  • 一个集合的扩展和适应必须也是简单的 所有的集合框架都包含如下内容:
  • 接口:是代表集合的抽象数据类型。之所以定义多个接口,是为了以不同的方式操作集合对象
  • 实现:是集合接口的具体实现
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算 集合框架提供了一套性能优良,使用方便的接口和类,集合框架位于java.util包,当需要的时候可进行导入操作

集合接口

Collection 接口

  • 最基本的集合接口,一个Collection代表一组Object

List 接口

  • List接口是一个有序的Collection,此接口能通过索引来访问List中的元素

Set

  • Set的接口与Collection完全一样,但是Set不保存重复元素

SortedSet

  • 继承与Set,保存有序的集合

Map

  • 存储一组键值对

Map.Entry

  • 描述Map里的键值对

SortedMap

  • 使Map进行升序排列

Enumeration

  • 通过它可以枚举对象集合中的元素,这个接口已被迭代器取代

Set和List的区别

  • Set存储是无序的,不重复的数据。List是有序的,可以重复的数据
  • Set检索效率低,删除和插入效率高。List检索效率高,删除和插入效率低
  • List可以动态增长

集合实现类

AbstractCollection

  • 实现大部分的集合接口

AbstractList

  • 实现了大部分List接口

AbstractSequentialList

  • 提供了对数据元素的链式访问

LinkedList(链表)

  • 该类实现了List接口
  • 查找效率低,删除和插入效率高

ArrayList(动态数组)

  • 该类实现了List接口
  • 查找效率高,删除和插入效率低

AbstractSet

  • 实现了大部分Set接口

HashSet

  • 实现了Set接口

LinkedHashSet

  • 具有可预知迭代顺序的Set接口的哈希表和链接列表实现

TreeSet

  • 实现了Set接口,可以实现排序等功能

AbstractMap

  • 实现了大部分Map接口

HashMap

  • 是一个散列表,内容是键值对映射

TreeMap

  • 使用树结构

WeakHashMap

  • 使用弱密钥的哈希表

LinkedHashMap

  • 对元素进行排序

IdentityHashMap

  • 比较文档时使用引用相等

Vector

  • 与ArrayList类似,但可以用在多线程的情况下,允许设置默认的增长长度

Stack

  • 实现了一个栈

Dictionary(字典)

  • 用来存储键值对

Hashtable

  • 是Dictionary的子类,位于java.util包中

Properties

  • 是一个持久的属性集,属性中每一个键都对应一个字符串

BitSet

  • 它会创建一种特殊类型的数组来保存位值,大小会随需要而增加 ps:List有序,Set无序,Map键值对集合,其余基本都一一对应

今天就到这里,晚安~