JAVA中的集合类精练总结 - JAVA课堂笔记整理

1、JAVA集合类都放在java.util包中
2、JAVA集合类不能存放基本数据类型,只能存放对象的引用。
3、Set:集合中对象不按特定的方式排序,并且没有重复对象
4、List:集合中的对象按照检索位置排序,可以有重复对象。
5、Map:集合中每一个元素包含一对键-值对象,集合中没有重复的键对象,值对象可以重复。

*精炼的总结:
Collection 是对象集合, Collection 有两个子接口 List 和 Set
List 可以通过下标 (1,2..) 来取得值,值可以重复
而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的  
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类  
HashTable 是线程安全的,不能存储 null 值  
HashMap 不是线程安全的,可以存储 null 值 
*Collection , List , Set 和 Map 用法和区别:
首先看一下他们之间的关系
Collection          接口的接口   对象的集合
├ List                   子接口      按进入先后有序保存   可重复
│├ LinkedList                接口实现类   链表   插入删除   没有同步   线程不安全
│├ ArrayList                  接口实现类   数组   随机访问   没有同步   线程不安全
│└ Vector                      接口实现类   数组                  同步        线程安全
│   └ Stack
└ Set                   子接口       仅接收一次,并做内部排序
├ HashSet
│   └ LinkedHashSet
└ TreeSet

对于 List ,关心的是顺序, 它保证维护元素特定的顺序(允许有相同元素),使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素。
对于 Set ,只关心某元素是否属于 Set (不 允许有相同元素 ),而不关心它的顺序。
Map                接口      键值对的集合
├ Hashtable                  接口实现类                  同步           线程安全
├ HashMap                   接口实现类                  没有同步    线程不安全
│├ LinkedHashMap
│└ WeakHashMap
├ TreeMap
└ IdentifyHashMap

集合的选择标准:
存放要求
无序-Set
有序-List
“key-value”对-Map
读和改的效率
Hash*-两者都最高
Array*-读快改慢
Linked*-读慢改快
*
*
Collection接口
Iterator接口
Comparable接口、Comparator接口
Set、List、Map接口
Collections类
ArrayList、LinkedList类
HashSet、LinkedHashSet、TreeSet类
HashMap、LinkedHashMap、TreeMap类
Properties类

posted @ 2011-11-19 15:38  中国聚龙  阅读(502)  评论(0编辑  收藏  举报