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

Java util之常用数据类型特性盘点(一)

阅读更多

Java util之常用数据类型特性盘点 


出处:http://www.iteye.com/topic/22192

 


java.util就相当于c++的STL,是Java的一个非常重要的包,有很多常用的数据类型,不同数据类型有不同的用途,而有些数据类似乎很相似,怎样选择应用,就需要对它们进行辨析。 
下面列出了这些数据类型的特点,根据这些特点,就可以有针对性的选用 
  
* 蓝色为接口,绿色为具体实现类 
* 缩进的层次结构,就是implement或extend的层次关系 
* 每个接口或类都具备其所有上层接口、类的特性 
  
Collection 
........|--------List 
........|..........|----------ArrayList 
........|..........|----------Vector 
........|..........|.............|-----Stack 
........|..........|----------LinkedList 
........|--------Set 
...................|----------HashSet
...................|.............|-----LinkedHashSet 
...................|----------SortedSet 
.................................|-----TreeSet 
  
Iterator 
.....|-------ListIterator 
  
Map 
.....|------Hashtable 
.....|..........|------Properties 
.....|------HashMap 
.....|..........|------LinkedHashMap 
.....|------WeakHashMap 
.....|------SortedMap 
................|------TreeMap 

  
Collection
●..实现该接口及其子接口的所有类都可应用clone()方法,并是序列化类. 

.....List. 
.....●..可随机访问包含的元素 
.....●..元素是有序的 
.....●..可在任意位置增、删元素 
.....●..不管访问多少次,元素位置不变 
.....●..允许重复元素 
.....●..用Iterator实现单向遍历,也可用ListIterator实现双向遍历 

..........ArrayList 
..........●..用数组作为根本的数据结构来实现List 
..........●..元素顺序存储 
..........●..新增元素改变List大小时,内部会新建一个数组,在将添加元素前将所有数据拷贝到新数组中 
..........●..随机访问很快,删除非头尾元素慢,新增元素慢而且费资源 
..........●..较适用于无频繁增删的情况 
..........●..比数组效率低,如果不是需要可变数组,可考虑使用数组 
..........●..非线程安全 

..........Vector
..........●..另一种ArrayList,具备ArrayList的特性 
..........●..所有方法都是线程安全的(双刃剑,和ArrayList的主要区别) 
..........●..比ArrayList效率低 

...............Stack 
...............●..LIFO的数据结构 

..........LinkedList. 
..........●..链接对象数据结构(类似链表) 
..........●..随机访问很慢,增删操作很快,不耗费多余资源 
..........●..非线程安全 

.....Set
.....●..不允许重复元素,可以有一个空元素 
.....●..不可随机访问包含的元素 
.....●..只能用Iterator实现单向遍历 

..........HashSet 
..........●..用HashMap作为根本数据结构来实现Set 
..........●..元素是无序的 
..........●..迭代访问元素的顺序和加入的顺序不同 
..........●..多次迭代访问,元素的顺序可能不同 
..........●..非线程安全 

...............LinkedHashSet 
...............●..基于HashMap和链表的Set实现 
...............●..迭代访问元素的顺序和加入的顺序相同 
...............●..多次迭代访问,元素的顺序不便 
...............●..因此可说这是一种有序的数据结构 
...............●..性能比HashSet差 
...............●..非线程安全 

..........SortedSet 
..........●..加入SortedSet的所有元素必须实现Comparable接口 
..........●..元素是有序的 

...............TreeSet
...............●..基于TreeMap实现的SortedSet 
...............●..排序后按升序排列元素 
...............●..非线程安全 

----------------------------------- 
  
Iterator.. 
●..对Set、List进行单向遍历的迭代器 

..........ListIterator. 
..........●..对List进行双向遍历的迭代器 

----------------------------------- 

Map 
●..键值对,键和值一一对应 
●..不允许重复的键. 

.....Hashtable. 
.....●..用作键的对象必须实现了hashcode()、equals()方法,也就是说只有Object及其子类可用作键 
.....●..键、值都不能是空对象 
.....●..多次访问,映射元素的顺序相同 
.....●..线程安全的 

..........Properties 
..........●..键和值都是字符串 

.....HashMap 
.....●..键和值都可以是空对象 
.....●..不保证映射的顺序 
.....●..多次访问,映射元素的顺序可能不同 
.....●..非线程安全 

...............LinkedHashMap 
...............●..多次访问,映射元素的顺序是相同的 
...............●..性能比HashMap差 

.....WeakHashMap.. 
.....●..当某个键不再正常使用时,垃圾收集器会移除它,即便有映射关系存在 
.....●..非线程安全 

.....SortedMap. 
.....●..键按升序排列 
.....●..所有键都必须实现.Comparable.接口. 

...............TreeMap
...............●..基于红黑树的SortedMap实现 
...............●..非线程安全

 

 

 

 

 

 

 

下一篇:Java util之常用数据类型特性盘点(二)

 

2011-02-24 david.wang

分享到:
评论

相关推荐

    Java常用工具类UtilClass

    Java常用工具类UtilClass,包括StringUtil、FileUtil、ConnectDB、DateUtil、TimeUtil一些可能用到的工具,实现某些特定的功能,,

    java util工具类3

    java util工具类2java util工具类2java util工具类2java util工具类2

    java util工具类1

    java util工具类1java util工具类1

    java util工具类4

    java util工具类4java util工具类4java util工具类4java util工具类4ssss

    用java.util.zip包现数据压缩与解压

    本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压

    java常用util工具类

    Stringutil FileUtil MD5 JsonUtil

    Java常用Util类

    这是我自己整理的一些Java中常用的工具类,是一个Web项目可以直接导入.在里面有详细的介绍 有部分是网上的资源,在这里整理给大家希望对大家有用(这个工具类还会不断的更新)

    JavaUtil.rar

    java自己封装的工具类,用于节省时间,提高效率,java常用工具类封装util.rar 一个项目不可能没有工具类,工具类的初衷是良好的,代码重用,但到了后面工具类越来越乱,有些项目工具类有几十个,看的眼花缭乱,...

    java常用工具类封装util.rar

    java常用工具类封装util.rarjava常用工具类封装util.rarjava常用工具类封装util.rarjava常用工具类封装util.rar

    Java开发常用Util工具类

    字符串工具类/数据类型转换类/集合工具类/数组工具类/Properties文件操作类/常用流操作工具类/编码工具类/Json工具类/日期工具类/下载文件工具类/解压ZIP工具类/文件编码转码

    java工具类 java开发助手 java util

    java工具类 java开发助手 java util

    Java.util随记.doc

    Java.util包常用接口

    java.util包

    java.util包

    javaUtil.jar

    javaUtil.jar

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    StringUtil.java

    java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...

    java util工具类2

    java util工具类2java util工具类2java util工具类2

    Java项目开发常用工具包util

    Java项目开发常用工具包,其中主要包括:Assert.java BufferedImageLuminanceSource.java CipherUtil.java ClientConst.java CodeUtil.java ComputeUtil.java DataUtils.java DateUtils.java Digests.java Encodes....

    JAVA util工具包

    JAVA开发Util工具包,小集合,多平带扩展。JAVA开发Util工具包,小集合,多平带扩展

    java-util-iterator.pdf java-util-iterator.pdf

    java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf

Global site tag (gtag.js) - Google Analytics