自学内容网 自学内容网

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)!