《工作日志》Java常用类总结

版权声明:转载请注明出处 https://blog.csdn.net/lvhonglei1987/article/details/88703677

Collection

在这里插入图片描述
Collection,常被叫做集合,在Java面试的时候,是必须考的,今天就说说我印象中的Collection,集合中常用的是list和set,list和set下面也有具体的实现类。Map不继承也不实现Collection,所以,Map不是集合类。

list

List也是一个接口,我们最常用的是List下面的ArrayList和LinkedList,Vector平时基本不会用。

ArrayList

  1. ArrayList的数据结构是Object数组
  2. ArrayList是非线程安全的
  3. ArrayList数组初始化有两种方式,
    第一种:
    List list = new ArrayList(10);
    
    第二种:
    List<String> list = new ArrayList();
    list.add("s");
    
  4. ArrayList数组在没有设置数组长度的时候,默认数组长度是10
    /**
     * Default initial capacity.
     */
    private static final int DEFAULT_CAPACITY = 10;
    
  5. ArrayList数组在超过当前最大容量的时候,会扩容,容量是原来的1.5倍
  6. ArrayList数组建议设置数组长度,避免数组扩容带来的性能损耗
  7. ArrayList数组不适合随机插入和删除,适合随机访问
  8. ArrayList数组插入和删除的性能和位置有关系

Vector

  1. Vector与ArrayList数据结构相同
  2. Vector是线程安全的,应为它的方法上添加了 synchronized关键字
  3. Vector可以设置数组长度,也可以设置扩容阈值

LinkedList

  1. LinkedList数据结构是双向链表
  2. LinkedList是非线程安全的
  3. LinkedList适合随机插入和删除,时间复杂度为O(1)
  4. LinkedList不适合随机查询,因为需要遍历,不能根据下标来定位

Set

Set下面有HashSet,LinkedHashSet,TreeSet

HashSet

HashSet集合类

LinkedHashSet

集合类

TreeSet

Map

在这里插入图片描述
Map是键值对结构

HashMap

HashMap

Hashtable

已弃用

LinkedHashMap

双向链表的散列表

ConcurrentHashMap

安全的map

TreeMap

猜你喜欢

转载自blog.csdn.net/lvhonglei1987/article/details/88703677
今日推荐