Java集合工具类—集合排序
Java中常用的排序工具类是Arrays.sort()和Collections.sort(),它们底层分别使用的是基于快速排序和归并排序的排序算法。
Java集合类包括两个根接口:Collection和Map。
1.Collection 包括Set、List。
List 接口继承了 Collection 接口,定义一个允许重复项的有序集合;按照对象进入顺序进行保存对象,List集合就像是一个数组,有序,长度可变。基于索引的队成员随机访问。
特点: 有序的,可重复的
常用的实体类: ArrayList,LinkedList。
ArrayList:常用来查找
LinkedList:常用来增加和删除操作
Set 接口继承了 Collection 接口,集合元素无序且无重复。成员不能重复。
特点: 无序的,唯一的
常用的实体类:HashSet、TreeSet,LinkedHashSet。
HashSet 无序的,唯一的
TreeSet 有序的,唯一的,底层是自平衡二叉树结构(红黑树);附加实现了SortedSet。成员一般为同一类型。
LinkedHashSet 按照成员的插入顺序遍历成员
Collection主要实现类特点:
实现类名称 | 主要特点 |
---|---|
ArrayList | 线性表,底层用Object数组实现,特点:访问快,增删慢 |
LinkedList | 链表,底层用双向链表结构实现的,特点:访问慢,增删快 |
HashSet | 无序,唯一,基于HashMap实现的,至多有一个null元素 |
TreeSet | 底层是红黑树(自平衡的排序二叉树),有序,唯一 |
LinkedHashSet | 底层哈希表+链表实现,元素不重复,与HashSet相比访问更快,增删稍慢 |
Map:
Map接口含有两个部分(两列):关键字和值 (key-value,简称键值对);key不可重复,value可重复;添加数据时,如果key重复,则用新值替换原有的值。
常用实现类:HashMap、TreeMap
键值对成员,基于键找值的操作。
集合排序方法
使用Collections类的sort(List list)方法
sort(List list)是根据元素的自然顺序对指定列表按升序进行排序。
1、对基本数据类型排序
List中只能存放对象,要想存放基本数据类型的话,泛型中只能写其对应的包装类。
2、对字符串排序
集合中字符串的排序后其实是按字符顺序,ASCII值顺序进行排序的。
自定义的类如何排序?
使用Comparable或Comparator接口
下面是Comparator和Comparable接口的区别:
1、Comparator:
①位于java.util包
②在要比较的类的外部实现该接口
③调用sort方法时,要指定Comparator的实现类
使用顺序:
实现要排序的接口
实现comparator接口
测试
2、Comparable
①位于java.lang包
②在要比较的类上实现该接口
③调用sort方法时,只需指定集合名即可
使用顺序:
定义要比较的类,并实现comparable接口
测试
原文地址:https://blog.csdn.net/A_aspectJ/article/details/136394753
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!