Baham's Blog

Above all else, guard your heart.

《Building Java Programs》-Java集合框架(Java Collection Framework)

Java集合框架-java collection framework-示意图(http://baham.co/wp-content/uploads/2012/08/Java-Collection-Framework.png) Java集合框架(点击浏览大图)

ArrayList的优点在于可以随机访问每一个元素,也可以快速在尾部添加或删除元素。但在头部添加、删除元素时,ArrayList的执行效率很低,因为每次从列表中删除或添加一个元素,都要将该元素所有后继元素向前后向后移动一个位置,此时需要通过使用node(节点)存储元素的LinkedList(链表)。LinkedList满足Collection接口,而Collection接口Map接口构成了Java集合框架的主体。

  1. 集合对象中保存着一族其他对象。Java的集合对象包括ArrayList、HashSet和TreeSet等等。集合对象主要用于保存、组织和查询数据。

  2. 链表(LinkedList)是一种集合对象,它与ArrayList很相似,但在内部实现上采用了“节点”保存每一个元素。对于某些操作,如在列表开头插入或删除元素,链表的执行效率远高于ArrayList。

  3. 迭代器(Iterator)是一种对象,它可以保存访问列表过程中的当前位置,因此可以加快顺序访问列表元素的速度。通常采用迭代器来提高访问链表(LinkedList)操作的效率。

  4. 抽象数据类型(ADT),例如List、Set,定义了一族相关的操作,Java集合框架中用接口来表示ADT(例如List接口,ArrayList和LinkedList均实现了该接口)。

  5. 数学集合(Set)中不允许出现重复元素。Set可以快速查找一个给定值是否在集合中存在。Java中用Set接口表示数学集合。

  6. Java中有两个主要的数学集合类:TreeSetHashSet。TreeSet以某种顺序来保存一些可以进行比较的数据。HashSet可以保存任何数据,包括未满足Comparable接口的元素,而且检索速度更快,但不能控制集合中元素的顺序。

  7. 映射将一组键(Key)对象关联(映射)到一组值(Value)对象上。它用来保存一对拥有特定关系的数据,例如某人的姓名和他的身份证号。

  8. Java中使用Map接口表示映射,其中有两个主要的映射类:TreeMapHashMap。类似于数学集合(Set),TreeMap以某种顺序保存可以进行比较的键对象。HashMap可以保存任何键对象,而且检索素的更快,但却不能控制对象存放的顺序。在不考虑键对象顺序时,Sun推荐使用HashMap。




The Original Link: http://baham.github.io/08_06_389.html
If you want to reprint it, please do under the CC BY-NC-SA 4.0

Comments