`
run_wang
  • 浏览: 161572 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Java集合框架使用总结

阅读更多
               Java集合框架使用总结

  本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。

  一、概述

  数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法。

  在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。

  Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了。这样就大大提高了编程效率。

  二、集合框架的层次结构

  Collection是集合接口

  |————Set子接口:无序,不允许重复。

  |————List子接口:有序,可以有重复元素。

  区别:Collections是集合类

  Set和List对比:

  Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

  List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

  Set和List具体子类:

  Set

  |————HashSet:以哈希表的形式存放元素,插入删除速度很快。

  List

  |————ArrayList:动态数组

  |————LinkedList:链表、队列、堆栈。

  Array和java.util.Vector

  Vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。

  三、Iterator迭代器(接口)

  Iterator是获取集合中元素的过程,实际上帮助获取集合中的元素。

  迭代器代替了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:

  迭代器允许调用方利用定义良好的语义在迭代期间从迭代器所指向的集合移除元素。

  方法名称得到了改进。

  Iterator仅有一个子接口ListIterator,是列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。在长度为 n 的列表中,有 n+1 个有效的索引值,从 0 到 n(包含)。

  四、集合框架之外的Map接口

  Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。

  Map接口是Dictionary(字典)抽象类的替代品。

  Map 接口提供三种collection 视图,允许以键集、值集合或键-值映射关系集的形式查看某个映射的内容。映射的顺序 定义为迭代器在映射的 collection 视图中返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;某些映射实现则不保证顺序,如 HashMap 类。

  有两个常见的已实现的子类:

  HashMap:基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

  TreeMap:它实现SortedMap 接口的基于红黑树的实现。此类保证了映射按照升序顺序排列关键字,根据使用的构造方法不同,可能会按照键的类的自然顺序 进行排序(参见 Comparable),或者按照创建时所提供的比较器进行排序。

  Hashtable:此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。

  五、线程安全类

  在集合框架中,有些类是线程安全的,这些都是JDK1.1中的出现的。在JDK1.2之后,就出现许许多多非线程安全的类。

  下面是这些线程安全的同步的类:

  Vector:就比ArrayList多了个同步化机制(线程安全)。

  Statck:堆栈类,先进后出。

  Hashtable:就比HashMap多了个线程安全。

  Enumeration:枚举,相当于迭代器。

  除了这些之外,其他的都是非线程安全的类和接口。

  线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。对于非线程安全的类和接口,在多线程中需要程序员自己处理线程安全问题。

  六、其他一些接口和类介绍

  Dictionary和Hashtable类:

  Dictionary提供键值映射的功能,是个抽象类。一般使用它的子类HashTable类。遍历Hashtable类要用到枚举。

  Properties类

  Properties 继承于 Hashtable,Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一般可以通过读取properties配置文件来填充Properties对象。
分享到:
评论

相关推荐

    Java集合框架总结

    Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结

    JAVA集合框架学习总结

    本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

    Java集合框架使用总结.pdf

    农民专业合作社土地入股合同.pdf

    corejava集合框架学习总结.pdf

    (六)集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdf

    java集合框架总结

    超详细的关于java 集合框架的总结!

    JAVA集合框架学习思考+总结

    JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类

    Java集合框架的知识总结.doc

    本文档先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架...

    Java集合框架学习笔记

    Java集合框架做深入浅出的分析,有系统总结,以及常见错误等等

    Java容器框架 collection集合

    java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架

    Java基础知识小结

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

    Java集合框架常见面试题.pdf

    集合框架底层数据结构总结 先来看⼀下 Collection 接⼝下⾯的集合。 List Arraylist : Object[] 数组 Vector : Object[] 数组 LinkedList : 双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环) Set HashSet ...

    day20(集合框架)教案.doc

    java集合框架的知识总结,内含代码讲解,知识点概括,带你更好理解java集合框架。。。。像Map集合的概念,遍历方式等

    黑马程序员java培训就业班笔记:day16(集合框架基础总结)JAVA语言

    黑马程序员java培训就业班笔记:day16(集合框架基础总结)

    Java三大框架总结

    Servlet总结.doc hibernate总结.doc 集合总结.doc Spring.doc Ajax总结.doc 有关于Java三大框架的知识点总结

    关于Java集合框架的总结

    下面小编就为大家带来一篇关于Java集合框架的总结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics