码迷,mamicode.com
首页 > 编程语言 > 详细

Java-集合类汇总

时间:2015-05-17 23:22:25      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

结构图:  
  
Collection  
├List  
│├LinkedList  
│├ArrayList  
│└Vector  
│ └Stack  
└Set  
Map  
├Hashtable  
├HashMap  
└WeakHashMap 
----------------------------------------------------------------------  
Collection接口  
          Collection是最基本的集合接口,一个Collection代表一组Object,  
         即Collection 的元素(Elements)。一些Collection允许相同的元素  
         而另一些不行。一些能排序而另一些不行。  
  
         
Map接口  
            请注意,Map没有继承Collection接口,Map提供key到value的映射。  
          一个Map中不能包含相同的key,每个 key只能映射一个value。  
    Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,  
          一组value集合,或者一组key-value 映射。  
------------------------------------------------  
  
list接口和set接口区别:  
   list允许有相同元素,而set不允许  
Vector与ArrayList区别:  
   Vector非常类似ArrayList,但是Vector是同步的。  
         由Vector创建的Iterator,虽然和 ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,  
         当一个Iterator被创建而且正在被使用,另一个线程改变了 Vector的状态(例如,添加或删除了一些元素),  
         这时调用Iterator的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。  
Stack 类:  
  Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。  
          基本的push和pop方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。  
    Stack刚创建后是空栈。  
------------------------------------------------  
总结  
  如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。  
  如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。  
  要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。  
  尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。   

 

Java-集合类汇总

标签:

原文地址:http://www.cnblogs.com/hwaggLee/p/4510646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!