集合部分

Posted debugtheworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合部分相关的知识,希望对你有一定的参考价值。

  介绍Java中的Collection FrameWork及如何写自己的数据结构。

    Collection

     ├  List

     │ ┝ LinkedList

     │ ┝ArrayList

     │ ┗Vector

          │   ┗Stack
     ┗Set 

 

    Map

   ┡Hashtable

   ┡HashMap

   ┗WeakHashMap

   Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Element);Map提供Key到value的映射。

List、Set、Map是否继承Collection接口。

  List、set 是;Map不是。

集合类有哪些?简述一下主要方法。

  最常用的集合类是List和Map。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、储存和操作任何类型对象的元素列表。List适用于按数值素引访问元素的情形。Map提供了一个更通用的元素储存方法。Map集合元素用于储存元素对(称作“键”和“值”),其中每个键映射到一个值。

说出ArrayList、Vector、LinkedList的储存性能和特性。

  ArrayList和Vector都是使用数组方式储存数据,此数组元素数大于实际储存的数据以便增加和插入数据,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized 方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现储存,按序号索引数据需要进行前项或后项遍历,但是插入数据时只需要记录本项的前项即可,所以插入速度较快。

Collection和Collections的区别。

  Collection是java.util下的接口,它是各种集合的父类接口,继承于它的接口主要由Set和List;Collections是个java.util下的类,是针对集合的帮助类,提供一系列的静态方法实现对各种集合的搜索、排序、县城安全化的操作。

HashMap和Hashtable的区别。

  二者都实现了Map接口,是将唯一键映射到特定的值上;主要区别在于:

    HashMap没有排序,允许一个null键和多个null值,而Hashtable不允许;

   HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey,因为contains方法容易让人引起误解;

   Hashtable继承自Dictionary类,HashMap是Java1.2引进的Map接口的实现;

   Hashtable的方法是synchronized的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。

   HashMap和Hashtable采用的Hash、reHash算法大致一样,所以性能不会有很大的差异。

ArrayList与Vector区别。

    同步性:Vector是线程安全的(同步),而ArrayList是线程不安全的;

   数据增长:当需要增长时,Vector默认增长一倍,而ArrayList却是一半。

List、Map、Set三个接口,存取元素时各有什么特点。

    List以特定次序来持有元素,可有重复元素;

   Set无法拥有重复元素,内部排序(不可重复);

   Map以Key-Value值保存,Value可多值。

Set里的元素是不能重复的,那么用什么方法来区分是否重复呢(是用==还是equals())?它们有何区别?

    Set里面的元素是不能重复的,用equals()方法来区分重复与否。覆盖equals()方法用来判断对象的内容是否相同,而“==”判断地址是否相等,用来解决引用值是否指向同一对象。

 






以上是关于集合部分的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式获取集合视图部分在集合视图协议方法之外的高度

java集合Set集合之HashMap详解

java集合Set集合之TreeSet详解

独立填充集合视图的每个部分 Swift

Java源码分析集合部分总结

如何使用情节提要将集合视图部分项目滚动到水平