集合: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]
原文地址:https://www.cnblogs.com/zhai1997/p/13450251.html