`
lfx_cool
  • 浏览: 66231 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java集合框架小结

    博客分类:
  • Java
阅读更多
一、概述

集合框架(Collections Framework)的集合是指操作一组同类对象的容器。
在java5中有四个主要集合接口:
List,列表,一般情况下元素按自然顺序排列。可以根据索引任意访问其中元素。
  具体方法是<E> get(int index).
Queue,队列,FIFO或LIFO,还有优先级队列都实现此接口。只能访问对首元素。
Set,元素唯一,中文有翻译为组。通过Iterator访问。
Map,键-值映射,Map并没有实现Collection接口,但它是Java集合框架的一部分。通过键访问。get(Object key).
在java6中新增Deque接口,实现双端队列。

图1是接口的继承框架图



接口及其描述

Collection   允许处理一组对象,它位于集合层次结构的顶部
List         扩展Collection接口以处理序列(对象列表)
Queue        扩展Collection接口以处理列表中的特殊类型,其中的元素只能从前面删除(即队列)
Deque        扩展Queue,以处理双端队列(由Java SE6增加)
Set          扩展Collection接口以处理集合,其中元素必须唯一
SortedSet    扩展Set接口,以处理排序的集合,不允许null对象。
NavigableSet 扩展SortedSet接口,以处理基于最接近匹配搜索的元素的取回一个或多个值(由Java SE6增加)



图2是类的继承框架图,主要根据集合所属的类别划分,有些混合实现接口没有表示出来。比如PriorityQueue还实现了List接口,图中没有标示,请参考API文档。



类及其描述

AbstractCollection  实现大部分Collection接口

AbstractList  扩展AbstractCollection,实现大部分List接口
AbstractSequentialList 扩展AbstractList,用于顺序而不是随机访问集合的元素
ArrayList    通过扩展AbstractList实现动态数组,实现List接口。
LinkedList   扩展AbstractSequentialList实现链表。实现了List,Deque和Queue接口。

AbstractQueue  扩展AbstractCollection,实现部分Queue接口
PriorityQueue  扩展Collection接口以处理集合,实现Queue接口。动态可按需增长。
ArrayDeque  扩展AbstractCollection和实现Deque接口,允许动态双端队列(JavaSE6)

AbstractSet     扩展AbstractCollection,实现大部分set接口
EnumSet    扩展AbstractSet接口,实现Set接口。用于enum元素
TreeSet    在树中实现组。扩展AbstractSet接口,并实现了NavigableSet接口。它创建一个树结构来存储元素的集合。对象以升序顺序存储,访问和读取时间很快,是存储大量有序数据的很好选择。
HashSet    扩展AbstractSet接口,实现Set接口。用于哈希表,不保证元素的顺序。
LinkedHashSet   扩展HashSet,允许按照插入的顺序来迭代。


二、遗留的类和接口

java.util定义的遗留类如下所示:

  Dictionary   Hashtable  Properties   Stack   Vector

还有一个遗留接口Enumeration,分述于下。

1,Enumeration接口定义了枚举对象集合中元素的方法(一次得到一个),它已经被Iterator取代。尽管没有被建议不使用,但它对于新代码来说还是过时的。但是,它被遗留类定义的多个方法所使用(如Vector和Properties),也用于多个其它API类中,JDK5将它更新为泛型。

2,Vector实现一个动态数组。这与ArrayList相似,但是有两个区别:Vector是同步的,并且包含不在集合框架中的许多遗留方法。Vector被重新设计,以扩展AbstractList和实现List接口,并在JDK5中更新为泛型。

3,Stack是Vector的一个子类,它实现了标准的后进先出堆栈。在JDK5中更新为泛型。尽管Stack没有被建议不使用,但随着Java SE6的发布,ArrayDeque是一个更好的选择。

4,Dictionary是一个表示键值对存储库的抽象类,操作与Map很相似。尽管没有被建议不使用,但被列为过时的,因为Map可以完全取代它。在JDK5中被更新为泛型类。

5,Hashtable是原始的java.util包的一部分,它是Dictionary的具体实现。随着集合的出现,Hashtable被重新构造了,以便它也能实现Map接口。它与HashMap类似,但它是同步的。

6,Properties是Hashtable的一个子类,它用来维护值的列表,其键是一个String,且其值也是一个String。它被许多其它Java类使用。例如,当获取环境值时,它是System.getProperties()方法返回的对象类型。尽管Properties类自身不是泛型,但它的一些方法是泛型。
  • 大小: 20.2 KB
  • 大小: 29.9 KB
分享到:
评论

相关推荐

    Java基础知识小结

    1.10 Java集合框架使用总结 . . . . . . . . . . . . . . . . . . . . . . . 26 1.11 抽象类与接口的区别 . . . . . . . . . . . . . . . . . . . . . . . . 29 1.12 面向对象设计61点经验原则 . . . . . . . . . . ...

    集合小结 Collection

    java中各种集合详解! 集合(集合类的对象)是用来管理其他若干对象的。它类似于C++标准模板库中的容器,不过在JAVA的...接口和类共同构成了一个集合框架,集合的概念,一个对象可以装载多个对象,这个对象就是集合对象

    Java基础知识点总结.docx

    集合框架:★★★★★,用于存储数据的容器。 76 &lt; java.util &gt; Collection接口 77 &lt; java.util &gt;Iterator接口 78 &lt; java.util &gt;List接口 78 &lt; java.util &gt;Set接口 80 &lt; java.util &gt;Map接口 81 把map集合转成set的...

    Java语言程序设计

    不但详细介绍了Java语言本身,而且讨论了面向对象的设计思想和编程方法、UML建模语言、图形用户界面的编程方法、网络和数据库程序的编程方法、线程的使用、Java集合框架等实用开发技术。全书以面向对象的程序设计...

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    第3章 当一个变成多个——集合框架的基本概念 53 .3.1 讲解 54 3.1.1 集合概述 54 3.1.2 Collection接口 54 3.1.3 泛型(Generics) 56 3.1.4 Map接口 57 3.2 练习 59 3.2.1 创建课程管理系统 59 3.3 小结 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    21天学通Java-由浅入深

    28 1.3 程序开发过程 29 1.4 编码规范 29 1.5 HelloWorld:第一个Java程序 30 1.5.1 编写程序代码 30 1.5.2 编译程序代码并运行 30 1.5.3 注意事项 31 1.6 使用Eclipse集成开发工具开发 32 1.7 综合练习 32 1.8 小结 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    Java数据库编程宝典3

    1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 ...

    Java SE实践教程 源代码 下载

    第3章 当一个变成多个——集合框架的基本概念 53 .3.1 讲解 54 3.1.1 集合概述 54 3.1.2 Collection接口 54 3.1.3 泛型(Generics) 56 3.1.4 Map接口 57 3.2 练习 59 3.2.1 创建课程管理系统 59 3.3 小结 ...

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    第3章 当一个变成多个——集合框架的基本概念 53 .3.1 讲解 54 3.1.1 集合概述 54 3.1.2 Collection接口 54 3.1.3 泛型(Generics) 56 3.1.4 Map接口 57 3.2 练习 59 3.2.1 创建课程管理系统 59 3.3 小结 ...

    java基础案例与开发详解案例源码全

    11.1 Java集合框架概述264 11.2 Collection接口264 11.2 Set接口实现类266 11.2.1 实现类HashSet267 11.2.2 实现类LinkHashSet270 11.2.3 实现类TreeSet272 11.3 List接口实现类277 11.3.1 实现类ArrayList277 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    2.10 本章小结 116 第3章 深入使用JSF 117 3.1 JSF事件机制 118 3.1.1 Java事件模型概述 118 3.1.2 Java事件模型示例 119 3.1.3 JSF事件模型 120 3.1.4 Action事件 122 3.1.5 值改变事件 125 3.1.6 生命周期事件 128...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    第13章 Java集合类  13.1 Set(集)  13.1.1 Set的一般用法  13.1.2 HashSet类  13.1.3 TreeSet类  13.1.4 向Set中加入持久化类的对象  13.2 List(列表)  13.3 Map(映射)  13.4 小结  13.5 思考题 第14...

    Java数据库编程宝典2

    1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 ...

    Java数据库编程宝典4

    1.6 小结 第2章 设计数据库 2.1 数据库设计应考虑的事项 2.1.1 项目规范 2.1.2 设计表 2.1.3 生成发票 2.2 引用完整性 2.2.1 通用完整性规则 2.2.2 特定于数据库的完整性规则 2.3 小结 第3章 SQL基础 ...

Global site tag (gtag.js) - Google Analytics