27 Collections集合工具类

2020-03-09  本文已影响0人  ca8519be679b

如图Arrays服务于Array数组,Collections也是服务于Collection集合的工具类,这里我们逐个方法介绍,没有介绍到的,随遇到查看文档使用

addAll()添加多个元素方法

static <T> boolean addAll(Collection<? super T> c, T... elements)

1

我们之前添加多个元素时多次使用add很麻烦,这里可以使用addAll来添加,其中第一个参数为集合对象,后面使用上节的可变长度的参数作为元素

shuffle()打乱集合方法

static void shuffle(List list)     对列表随机打乱

2

sort()方法

static void sort(List list) 默认按照升序排列

3

如上对于打乱的数字集合,排序实现升序结构

4

对于字符串也是按照大小顺序排序

如果我们自定义个Person类,该如何排序呢,我们Integer,String其实都是实现了Comparable的接口

5

并重写了compareTo()方法,我们可以查看对应的文档

6

字符串比较先逐个字符比较,然后比较长度,

所以sort方法想实现自定义分类,我们的自定义类必须有compareTo方法

7 8

如上,我们注意使用排序需要继承Comparable接口,并重写compareTo方法,这里把toString也重写,为了展示元素

9

最后如上实现了排序,这里要记得继承接口,复写方法

10 11

当然,想实现降序,只需要将计算compareTo结果*-1,这里即调换减号两端

static void sort(List list,Comparator c)方法也是Collections的排序方法,

与前者不同的是,此方法引入的是第三方的比较器,使用Comparator接口,而前者使用Comparam接口,是自身和自身比较。

Comparator根据指定比较器产生的顺序对指定列表进行排序。这里是使用匿名类来进行排序(有点类似python sort,key=lambda这样),在匿名类里复写compare方法

12

如上,我们使用匿名类按照长度排序字符串,使用的就是带比较器方法,注意使用匿名类

上一篇下一篇

猜你喜欢

热点阅读