• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
打工人丶
博客园    首页    新随笔    联系   管理    订阅  订阅

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   不将就鸭  阅读(150)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3