Java集合体系

Java的集合主要由Collection[接口,单列集合]Map[接口,双列集合]构成。



List,Set集合[Collection的子接口]

List:是一个接口,需要被实现,可以插入null,元素可重复。常用实现类如下:
  • ArrayList:底层数据结构是数组,线程不安全,可以存储重复元素

  • LinkedList:底层数据结构是链表,线程不安全,可以存储重复元素

  • Vector:底层数据结构是数组,线程安全,可以存储重复元素

Set:是一个接口,需要被实现。常用实现类如下:
  • HashSet:底层数据结构是哈希表,线程不安全,不可以存储重复元素,基于HashMap实现。可以一个null,无序

  • LinkedHashSet:底层数据结构采用链表和哈希表共同实现,线程不安全,不可以存储重复元素。可以一个null,有序

  • TreeSet:底层数据结构是红黑树,线程不安全,不可以存储重复元素,基于TreeMap实现。不可以null,有序

    会排序。分为自然排序(无参构造)和比较器排序(有参构造)。
    自然排序要求元素必须实现Compareable接口【像基本类型,String类型都实现了Compareable接口的】,并重写里面的compareTo()方法,元素通过比较返回的int值来判断排序序列,返回0说明两个对象相同,不需要存储;

    比较器排需要在TreeSet初始化是时候传入一个实现Comparator接口的比较器对象,或者采用匿名内部类的方式new一个Comparator对象,重写里面的compare()方法;




数组与List之间转换

数组——>List:Arrays.asList(array)
List——>数组:List实例.toArray()



集合实现自定义排序

方法一:

    如果该集合元素不重复,都是些基本类型或者String类型,那么可以用TreeSet实现,能自动排序。
    如果该集合元素不重复,都是引用类型,那么需要通过比较器来实现。

方法二:

    采用CollectionUtils.sort方法进行排序
    https://www.cnblogs.com/itlihao/p/14947978.html






Map集合[接口]

Map:是一个接口,需要被实现,键不可重复。常用实现类如下:
  • HashMap:
  • TreeMap:
  • HashTable:

HashMap实现原理:https://www.cnblogs.com/itlihao/p/14948189.html

posted @ 2022-03-21 15:44   不将就鸭  阅读(154)  评论(0)    收藏  举报