JAVA-关于集合的一些问题

来源:互联网 发布:excel如何将数据分组 编辑:程序博客网 时间:2024/05/17 07:11

1.Collection、Set和List的区别? 
    Collection对象之间没有指定的顺序,允许有重复元素和多个null元素对象;它是Set和List接口的父类,是一种最通用型的集合接口; 
    Set各个元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个null元素对象; 

    List各个元素对象之间有指定的顺序,允许重复元素和多个null元素对象; 

2.LinkedList,ArrayList,Vector,Stack,Queue区别?NodeList区别?

    1)LinkedList链式访问,以指针相连,适合于在链表中间需要频繁进行插入和删除操作。

    2)ArrayList类似数组的形式,按照序号存储,随机访问速度非常快。

    3)Vector向量按照各元素序号存储,数组大小可以动态增长,对于大容量数据存储效率较高。

    4)Stack堆栈,先进后出的数组。

    这些类的对比与选择:

    如果涉及到堆栈队列等操作,应该考虑List中的stack,queue

    对于需要快速插入删除元素,应该使用linkedlist

    如果需要快速随机访问元素,应该选用arraylist

    如果程序在单线程环境中,选用非同步类

    如果在多线程中,选用同步类vector、stack和hashtable以及其子类。

几个面试常见问题:

ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?

  Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。

讲解java集合的体系结构

   A:ListSetMap是这个集合体系中最主要的三个接口。

      其中ListSet继承自Collection接口。

      Set不允许元素重复。HashSetTreeSet是两个主要的实现类。

      List有序且允许元素重复。ArrayListLinkedListVector是三个主要的实现类。

      Map也属于集合系统,但和Collection接口不同。Mapkeyvalue的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMapTreeMapHashtable是三个主要的实现类。

      SortedSetSortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序

1 0
原创粉丝点击