Java 集合框架

集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:

  • 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。
  • 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。

除了集合,该框架也定义了几个Map接口和类。Map里存储的是键/值对。尽管Map不是collections,但是它们完全整合在集合中。


集合接口
序号接口描述
1Collection 接口
允许你使用一组对象,是Collection层次结构的根接口。
2List 接口
继承于Collection和一个 List实例存储一个有序集合的元素。
3Set
继承于 Collection,是一个不包含重复元素的集合。
4SortedSet
继承于Set保存有序的集合。
5Map
将唯一的键映射到值。
6Map.Entry
描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
7SortedMap
继承于Map,使Key保持在升序排列。
8Enumeration
这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。

集合类

Java提供了一套实现了Collection接口的标准集合类。

序号类描述
1AbstractCollection
实现了大部分的集合接口。
2AbstractList
继承于AbstractCollection 并且实现了大部分List接口。
3AbstractSequentialList
继承于 AbstractList ,提供了对数据元素的链式访问而不是随机访问。
4LinkedList
继承于 AbstractSequentialList,实现了一个链表。
5ArrayList
通过继承AbstractList,实现动态数组。
6AbstractSet
继承于AbstractCollection 并且实现了大部分Set接口。
7HashSet
继承了AbstractSet,并且使用一个哈希表。
8LinkedHashSet
具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。
9TreeSet
继承于AbstractSet,使用元素的自然顺序对元素进行排序.
10AbstractMap
实现了大部分的Map接口。
11HashMap
继承了HashMap,并且使用一个哈希表。
12TreeMap
继承了AbstractMap,并且使用一颗树。
13WeakHashMap
继承AbstractMap类,使用弱密钥的哈希表。
14LinkedHashMap
继承于HashMap,使用元素的自然顺序对元素进行排序.
15IdentityHashMap
继承AbstractMap类,比较文档时使用引用相等。
序号类描述
1Vector
Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的。
2Stack
栈是Vector的一个子类,它实现了一个标准的后进先出的栈。
3Dictionary
Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。
4Hashtable
Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 。
5Properties
Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。
6BitSet
一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。

集合算法

如何使用迭代器

通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。

做到这一点最简单的方法是采用一个迭代器,它是一个对象,实现了Iterator 接口或ListIterator接口。

迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator继承了Iterator,以允许双向遍历列表和修改元素。

这里通过实例列出Iterator和listIterator接口提供的所有方法。


如何使用比较器

TreeSet和TreeMap的按照排序顺序来存储元素. 然而,这是通过比较器来精确定义按照什么样的排序顺序。

这个接口可以让我们以不同的方式来排序一个集合。

序号比较器方法描述
1使用 Java Comparator
这里通过实例列出Comparator接口提供的所有方法

总结

Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。

集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。

集合框架的类和接口均在java.util包中。
java.util包是很重要的包,内部有很多已经实现好的而且高效的方法,比如排序,比较等,要经常查看对应的API,温故知新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值