随笔 - 150,  文章 - 0,  评论 - 6,  阅读 - 86401

1.1 常用功能

  • java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:

  • public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。

  • public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。

  • public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

  • public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序。

复制代码
public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //添加多个元素
        Collections.addAll(list,"a","c","b","d");
        System.out.println(list);

        //打乱集合中元素的顺序
        Collections.shuffle(list);
        System.out.println(list);

        //sort 将集合中的元素按照默认的顺序排序  只能使用list集合或者实现了list接口
        Collections.sort(list);
        System.out.println(list);
    }
复制代码

2.2 Comparator比较器

public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

sort()如何进行排序呢?

在JAVA中提供了两种比较实现的方式,一种是比较死板的采用java.lang.Comparable接口去实现,一种是灵活的当我需要做排序的时候在去选择的java.util.Comparator接口完成。

public int compare(String o1, String o2):比较其两个参数的顺序。

两个对象比较的结果有三种:大于,等于,小于。

如果要按照升序排序, 则o1 小于o2,返回(负数),相等返回0,01大于02返回(正数)

如果要按照降序排序 则o1 小于o2,返回(正数),相等返回0,01大于02返回(负数)

复制代码
public class CollectionsDemo3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("cba");
        list.add("aba");
        list.add("sba");
        list.add("nba");
        //排序方法  按照第一个单词的降序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.charAt(0) - o1.charAt(0);
            }
        });
        System.out.println(list);
    }
}
复制代码

2.3 练习

创建一个人类,存储到ArrayList集合中完成指定排序操作。

第一种:将人类实现Comparable<Person>接口,并重写compareTo()方法

@Override
    public int compareTo(Person o) {
        //自定义比较规则 按年龄shengx比较
        return this.getAge()-o.getAge();
    }

第二种:使用内部类方式 new Comparator()接口,重写compare方法

Lambda表达式简写:Collections.sort(people, (o1,o2) -> o1.getAge()-o2.getAge() );

复制代码
public class Demo02Sort {
    public static void main(String[] args) {

        ArrayList<Person> people = new ArrayList<>();
        Person p1 = new Person("hdh", 20);
        Person p2 = new Person("xj", 19);
        Collections.addAll(people,p1,p2);
        Collections.sort(people, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {

                return o1.getAge()-o2.getAge();
            }
        });
        System.out.println(people);

    }
}
复制代码

 

posted on   忆夏KhaZix  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示