java中Collections工具类

package wht.project.MAP;
/**
 * Collections类是操作Collection和Map集合接口的
 *
 */
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsText {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(44);
        list.add(5);
        list.add(56);
        list.add(8);
        list.add(66);
        System.out.println(list); //[1, 44, 5, 56, 8, 66]
        Collections.reverse(list);
        System.out.println(list); //[66, 8, 56, 5, 44, 1]
        Collections.shuffle(list);// shuffle中文意思是洗牌,对集合随机化
        System.out.println(list);// 每次结果都不一样
        Collections.sort(list);//这时候排序调用的是Interger里面的ConpareTo方法,当排序自定义类的时候,需要定制排序操作
        System.out.println(list);//[1, 5, 8, 44, 56, 66]
        Collections.swap(list,1,2);
        System.out.println(list);//[1, 8, 5, 44, 56, 66]
        int frequency = Collections.frequency(list, 2); // 集合中某个元素出现的次数
        System.out.println(frequency);// 0
        // 集合赋值的方法:
        // 以下是错误写法,经过源码分析dest集合的长度需要大于list的长度
       /* List dest = new ArrayList();
        Collections.copy(dest,list);
        System.out.println(dest);*/
        //List dest = new ArrayList(15);//通过此方法不是初始化dest集合的大小,实际上是初始化底层数组的长度
        //System.out.println(dest.size);//0
        List dest = Arrays.asList(new Object[list.size()]);//通过此方法来解决dest长度的问题
        Collections.copy(dest,list);
        System.out.println(dest);//[1, 8, 5, 44, 56, 66]
        // synchronizedxxx将指定的集合包装成线程同步的集合
        List list1 = Collections.synchronizedList(list);
    }
}

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页