zoukankan      html  css  js  c++  java
  • Java——Collections工具类

    一、介绍

    java.util.Collections是集合的工具类,里面提供了静态方法来操作集合、乱序、排序...

    二、shuffle

    public static void shuffle(List<?> list)
    

    使用默认随机源对指定列表进行置换

    • 乱序只能对List集合进行乱
    • 集合中元素类型可以任意类型

    例子

    LinkedList<Integer> list = new LinkedList<>();
    list.add(100);
    list.add(200);
    list.add(300);
    System.out.println(list);   // [100, 200, 300]
    Collections.shuffle(list);
    System.out.println(list);   // [200, 300, 100]
    

    三、sort

    sort方法是一个重载的方法,可以实现自然排序及自定义比较器排序。要特别注意的是sort方法只能对List集合进行排序

    3.1、sort的自然排序

    public static <T extends Comparable<? super T>> void sort (List<T> list)
    

    例子

    LinkedList<Integer> list = new LinkedList<>();
    list.add(200);
    list.add(100);
    list.add(300);
    System.out.println(list);   // [200, 100, 300]
    Collections.sort(list);
    System.out.println(list);   // [100, 200, 300]

    3.2、自定义比较器排序

    public static <T> void sort (List<T> list, Comparator<? super T> c)
    

    方法分析

    • 该方法只能对List集合进行排序
    • 从方法中泛型分析可知,集合中元素类型必须是Comparable的子类型

    例子

    List<Student> list = new LinkedList<>();
    list.add(new Student("张三", 26));
    list.add(new Student("李四", 23));
    list.add(new Student("张三", 22));
    list.add(new Student("王五", 26));
    
    for (Student student : list) {
        System.out.println(student);
        // Student{name='张三', age=26}
        //Student{name='李四', age=23}
        //Student{name='张三', age=22}
        //Student{name='王五', age=26}
    }
    
    Collections.sort(list, new Comparator<Student>() {
        @Override
        public int compare(Student o1, Student o2) {
            if(o1.getAge() == o2.getAge()){
                return o1.getName().compareTo(o2.getName());
            }else{
                return o1.getAge() - o2.getAge();
            }
        }
    });
    
    for (Student student : list) {
        System.out.println(student);
        //Student{name='张三', age=22}
        //Student{name='李四', age=23}
        //Student{name='张三', age=26}
        //Student{name='王五', age=26}
    }
    

    四、addAll

    该方法功能添加任意多个数据到集合中

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

    addAll是一个含有可变参数的方法,使用时可以传入任意多个实参,实用方便。

    例子

    List<Integer> list = new LinkedList<>();
    Collections.addAll(list, 100, 200, 300);
    System.out.println(list);   // [100, 200, 300]
    

      

  • 相关阅读:
    使用python-gitlab包在gitlab上自动创建分组
    navicat连接远程mysql失败
    Python shell介绍
    Python任务流taskflow
    Python导包问题
    demo27-数组去重
    demo26-通过循环输出数据到页面显示
    demo25-for循环
    Visual Studio 2005 快捷键汇总
    三维立体图片效果
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14777149.html
Copyright © 2011-2022 走看看