集合

ArrayList

ArrayList的底层数据结构是动态数组,他是先确定ArrayList的容量,若当前容量不足以容纳当前的元素个数时,然后通过Arrays.copyOf()重新创建一个数组,将原来的数组copy进去,设置新的容量,然后赋值给elementData。

适合 查找或者遍历,如果有大量的插入删除操作尽量避免使用它。

LinkedList

ListedList基于双端链表,添加/删除元素只会影响周围的两个节点,开销很低;只能顺序遍历,无法按照索引获得元素,因此查询效率不高;没有固定容量,不需要扩容;需要更多的内存, 每个节点中需要多存储前后节点的信息,占用空间更多些。

怎样将一个数组转成List,有什么方法?

①数组转list,可以使用Arrays.asList(数组)

②List转数组,使用list.toArray()

HashSet、TreeSet、LinkedHashSet区别?

可以从集合的使用场合回答面试官

①.需要速度快的集合,使用HashSet

②.需要集合有排序功能,使用TreeSet

③.需要按照插入的顺序存储集合,使用LinkedHashSet

HashMap和Hashtable的区别:

    1、hashMap不是线程安全的,而hashtable是线程安全的

    2、hashMap允许空的值和空的值,而hashtable则不允许。

  3、hashMap的性能要优于hashtable.

你可能感兴趣的:(集合)