美文网首页
27 Collections集合工具类

27 Collections集合工具类

作者: ca8519be679b | 来源:发表于2020-03-09 11:06 被阅读0次

    如图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

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

    相关文章

      网友评论

          本文标题:27 Collections集合工具类

          本文链接:https://www.haomeiwen.com/subject/fjyjdhtx.html