集合框架定义:集合框架是一个用来代表和 *** 纵集合的统一架构。
集合框架结构图如下:
图中最顶层包括(从左向右):迭代器、集合以及图。
集合框架一般包含:接口、实现、算法。
接口用于定义框架的结构和抽象数据类型,多接口可以实现以不同的方式 *** 作集合对象。
实现:一个接口有多个实现类,本质上为可复用的数据结构。不同的实现类根据不同的场景而使用。
算法:是实现集合接口的对象里的方法执行的一些有用的计算。例如搜索和排序等方法,用于提高框架的性能,方法为多态,可进行复用。
Map不是集合,但是也包含在集合之中。
集合框架中的接口描述:
Collection接口:Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。Collection 接口存储一组不唯一,无序的对象。
List 接口:有序的Collection接口。List 接口存储一组不唯一,有序(插入顺序)的对象。
Set接口:Set 接口存储一组唯一,无序的对象。
SortedSet:继承于Set保存有序的集合。
Map接口:存储一组键值对象,提供key(键)到value(值)的映射。
Map.Entry:描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。
SortedMap:继承于 Map,使 Key 保持在升序排列。
Enumeration:这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。
注意:
由于collection是一个接口,无法直接用于创建对象。
Collection下面有诸多子类继承或实现了其接口,故在创建对象时可以调用子类或实现类的构造方法。(类似于上转型)
List是collection的一个子类,其本身也为接口类型,无法用于创建对象。
List的实现类有:
(1)ArrayList(),该类是线程不安全类,其本身类是一个动态数组,取值 *** 作很快,但是扩容时效率会下降。其并非可以无限增容,最大容量应为Integer的最大值。其中的排序算法sort源于Array中的TimSort二分归并排序方法。
(2)LinkedList(),该类也是线程不安全类,利用内部类Node为数据单元的双向链表。其具有读效率低,写效率高, *** 作效率高等特性,适合用于频繁add,remove等 *** 作的List,同时可以节省一定的内存,在clear的情况下推荐使用GC回收,并且没有最大长度限制。
其最大的优势是删除时只需要做节点的移动,十分方便。
- stack。最后一种为栈。
总结:
Java集合框架为程序员提供了预先包装的数据结构和算法来 *** 纵他们。
集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的 *** 作。
集合框架的类和接口均在java.util包中。
任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)