java学习笔记25(Collections类)

Collections算法类:

  Collections是一个算法类,提供了一系列静态方法,实现对集合的排序、替换、交换、搜索、拷贝等操作;

  用法:Collections.方法名(要操作的集合);

  就像数组的操作类Arrays类一样,Collections类是一个操作集合的类,注意:只能操作Collection接口下的集合(Map集合不能使用该类)

具体方法有:

  1.addAll方法;可以对所有Collection集合使用

  2.sort(),reverse(),replaceAll(),binarySearch(),shuffle(),swap()方法 只能对List及其子类使用,Set类型不能用

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;

public class CollectionsDemo {
    public static void main(String[] args) {
        function();
    }

    private static void function() {
        ArrayList<String> arr=new ArrayList<>();
        //1.addAll(集合,要添加的元素) 将所有指定元素添加到指定集合中
        Collections.addAll(arr,"BBB","DDD","AAA","CCC");
        System.out.println(arr);//[BBB, DDD, AAA, CCC]
        //2.sort(List 要操作的集合) 根据元素的自然顺序对指定列表按升序进行排序
        Collections.sort(arr);
        System.out.println(arr);//[AAA, BBB, CCC, DDD]
        HashSet<String> hs=new HashSet<>();
        Collections.addAll(hs,"BBB","DDD","AAA","CCC");
        System.out.println(hs);//[AAA, CCC, BBB, DDD]
//        Collections.sort(hs);会报错 sort方法只能对List及其子类使用
        //3.reverse方法  反转指定列表中的元素,跟sort方法一样,只对List及其子类使用
        Collections.reverse(arr);
        System.out.println(arr);//[DDD, CCC, BBB, AAA]
        //4.shuffle()方法,对参数List中的元素进行随机排列 只能对List及其子类使用
        Collections.addAll(arr,"EEE","FFF","GG");//为了方便观察,我们多添加几个元素并排序
        Collections.sort(arr);
        System.out.println(arr);//[AAA, BBB, CCC, DDD, EEE, FFF, GG]
        Collections.shuffle(arr);//使用shuffle方法
        System.out.println(arr);//[DDD, EEE, BBB, CCC, GG, AAA, FFF]
        //5.replaceAll(要操作的集合,旧值,新值)方法 将列表中的旧值替换为新值,只对List及其子类可用
        Collections.replaceAll(arr,"BBB","HH");
        System.out.println(arr);//[HH, DDD, AAA, CCC, FFF, GG, EEE]
        //6.binarySearch()方法,在有序的List中查找指定的元素。注意:有序
        Collections.sort(arr);
        int index = Collections.binarySearch(arr, "DDD");
        System.out.println(index);//2  如果找不到元素或者元素无序的话,返回负值
        //7.swap(要操作的集合,int i,int j)方法  在List指定的列表中交换i和j两位置处的元素
        System.out.println(arr);//[AAA, CCC, DDD, EEE, FFF, GG, HH]
        Collections.swap(arr,3,5);
        System.out.println(arr);//[AAA, CCC, DDD, GG, FFF, EEE, HH]
    }
}

 

posted @ 2019-03-22 20:56  Zs夏至  阅读(133)  评论(0编辑  收藏  举报