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

    1、Collections类概述
            针对集合操作 的工具类,都是静态方法
     
    2、Collections成员方法
            public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。
            public static <T> int binarySearch(List<?> list,T key):二分查找
            public static <T> T max(Collection<?> coll):最大值
            public static void reverse(List<?> list):反转
            public static void shuffle(List<?> list):随机置换
     
    例子1:存储基本包装类
    package collectiondemos;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.List;
    /**
     * Created by gao on 15-12-22.
     */
    public class CollectionsDemo01 {
        public static void main(String[] args) {
            // 创建集合对象
            List<Integer> list = new ArrayList<Integer>();
            // 添加元素
            list.add(30);
            list.add(20);
            list.add(50);
            list.add(10);
            list.add(40);
            System.out.println("list:" + list); //list:[30, 20, 50, 10, 40]
            // public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。
            //Collections.sort(list);
            //System.out.println("list:" + list); //list:[10, 20, 30, 40, 50]
            // public static <T> int binarySearch(List<?> list,T key):二分查找
            System.out.println("binarySearch:" + Collections.binarySearch(list, 30)); //binarySearch:2
            System.out.println("binarySearch:" + Collections.binarySearch(list, 300)); //binarySearch:-6
            // public static <T> T max(Collection<?> coll):最大值
            System.out.println("max:" + Collections.max(list)); //max:50
            // public static void reverse(List<?> list):反转
    //        Collections.reverse(list);
    //        System.out.println("list:"+list); //list:[40, 10, 50, 20, 30]
            //public static void shuffle(List<?> list):随机置换
            Collections.shuffle(list);
            System.out.println("list:" + list); //list:[20, 50, 10, 30, 40]
        }
    }
    例子2:存储自定义对象
    学生类:
    package collectiondemos;
    public class Student implements Comparable<Student>{
        private String name;
        private int age;
        public Student() {
            super();
        }
        public Student(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public int compareTo(Student s) {
            int num = this.age - s.getAge();
            int num2 = num == 0 ? this.name.compareTo(s.getName()) : num;
            return num2;
        }
    }

    测试类:

    package collectiondemos;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    /**
     * Created by gao on 15-12-22.
     */
    public class CollectionsDemo02 {
        public static void main(String[] args) {
            // 创建集合对象
            List<Student> list = new ArrayList<Student>();
            // 创建学生对象
            Student s1 = new Student("林青霞", 27);
            Student s2 = new Student("风清扬", 30);
            Student s3 = new Student("刘晓曲", 28);
            Student s4 = new Student("武鑫", 29);
            Student s5 = new Student("林青霞", 27);
            // 添加元素对象
            list.add(s1);
            list.add(s2);
            list.add(s3);
            list.add(s4);
            list.add(s5);
            // 排序
            // 方式一:自然排序
            // Collections.sort(list);
            // 方式二:比较器排序
            // 如果同时有自然排序和比较器排序,以比较器排序为主
            Collections.sort(list, new Comparator<Student>() {
                @Override
                public int compare(Student s1, Student s2) {
                    int num = s2.getAge() - s1.getAge();
                    int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
                    return num2;
                }
            });
            // 遍历集合
            for (Student s : list) {
                System.out.println(s.getName() + "---" + s.getAge());
            }
        }
    }
    输出结果:
    风清扬---30
    武鑫---29
    刘晓曲---28
    林青霞---27
    林青霞---27
     
  • 相关阅读:
    7.2集训模拟赛(莫名其妙的比赛......)
    CF1042B Vitamins
    P1629 邮递员送信
    P1726 上白泽慧音
    P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G
    最短路
    7.1集训模拟赛5(......)
    求最大公约数和最小共倍数的方法(除穷举)
    6.29集训模拟赛3(暴力骗分的一天,嘿嘿)
    爬虫认证ES用户,并访问api
  • 原文地址:https://www.cnblogs.com/yangyquin/p/5067219.html
Copyright © 2011-2022 走看看