zoukankan      html  css  js  c++  java
  • 集合:Collections类(排序、比较、复制、替换)

    1、Collections类

    (1)特点

    是一个操作set、list、map等集合的工具类

    包含一系列静态方法,可以对集合进行排序、查询和修改等操作

    2、常用方法

    (1)排序

    reverse:反转list集合中元素的顺序

    @Test
        public  void test (){
            List list=new ArrayList();
            list.add("123");
            list.add("123");
            list.add(123);
            list.add(111);
            list.add("mm");
            Collections.reverse(list);
            System.out.println(list);
        }
    [mm, 111, 123, 123, 123]

    shuffle:对list集合元素进行随机排序

     @Test
        public  void test (){
            List list=new ArrayList();
            list.add("123");
            list.add("123");
            list.add(123);
            list.add(111);
            list.add("mm");
            Collections.shuffle(list);
            System.out.println(list);
        }
    [111, mm, 123, 123, 123]

    swap(list,i,j):交换 i 和 j

     @Test
        public  void test (){
            List list=new ArrayList();
            list.add("123");
            list.add("123");
            list.add(123);
            list.add(111);
            list.add("mm");
            Collections.swap(list,0,4);
            System.out.println(list);
        }
    [mm, 123, 123, 111, 123]

    sort:排序

    @Test
        public  void test (){
            List list=new ArrayList();
            list.add(3);
            list.add(123);
            list.add(123);
            list.add(111);
            list.add(1);
            Collections.sort(list);
            System.out.println(list);
        }
    [1, 3, 111, 123, 123]

    String类型的元素要书写比较器:

     @Test
        public  void test (){
            List list=new ArrayList();
            list.add("1211");
            list.add("123");
            list.add("a");
            list.add("d");
            list.add("c");
            Collections.sort(list, new Comparator() {
                @Override
                public int compare(Object o1, Object o2) {
                    String string1=(String)o1;
                    String string2=(String)o2;
                    return -string1.compareTo(string2);
                }
            });
            System.out.println(list);
        }
    [d, c, a, 123, 1211]

    (2)比较

    最大值、最小值

    @Test
        public  void test (){
            List list=new ArrayList();
            list.add(123);
            list.add(23);
            list.add(2);
            list.add(34);
            list.add(567);
            System.out.println(Collections.max(list));
            System.out.println(Collections.min(list));
        }
    567
    2

    此种方式是根据元素的自然顺序返回给定元素的最大值最小值。

    对String类型的元素进行排序:

    @Test
        public  void test (){
            List list=new ArrayList();
            list.add("a");
            list.add("d");
            list.add("s");
            list.add("b");
            list.add("p");
            Object string=Collections.max(list, new Comparator() {
                @Override
                public int compare(Object o1, Object o2) {
                    String string1=(String)o1;
                    String string2=(String)o2;
                    return string1.compareTo(string2);
                }
            });
            System.out.println(string);
        }
    s

    需要自定义比较器

    某一元素出现的次数

    @Test
        public  void test (){
            List list=new ArrayList();
            list.add("a");
            list.add("d");
            list.add("s");
            list.add("b");
            list.add("a");
            System.out.println(Collections.frequency(list,"a"));
        }
    2

    (3)复制

     @Test
        public  void test (){
            List list=new ArrayList();
            List dest=new ArrayList();
            for (int i=0;i<=10;i++){
                dest.add("zhai"+i);
            }
            list.add("a");
            list.add("d");
            list.add("s");
            list.add("b");
            list.add("a");
            Collections.copy(dest,list);
            System.out.println(dest);
        }
    [a, d, s, b, a, zhai5, zhai6, zhai7, zhai8, zhai9, zhai10]

    注意:目标集合的元素个数要多于被复制的集合元素的个数

    (4)替换

     @Test
        public  void test (){
            List list=new ArrayList();
            list.add("a");
            list.add("d");
            list.add("s");
            list.add("b");
            list.add("a");
            Collections.replaceAll(list,"a","zhai");
            System.out.println(list);
        }
    [zhai, d, s, b, zhai]
  • 相关阅读:
    3.29上午
    3.28下午
    3.28上午
    3.27下午
    3.24的下午
    2017.3.16上午学习内容
    2017.3.15上午学习内容
    2017.3.14下午学习内容
    2017.3.14上午学习内容
    2017.3.13下午学习内容
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13450251.html
Copyright © 2011-2022 走看看