java.util.Collections API

2021-09-22 15:36:39 浏览数 (2)

简介

java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。 他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

代码语言:javascript复制
Set set = Collections.emptySet()
Set set = Collections.synchronizedSet();//线程安全
Set<String> typeList = Collections.unmodifiableSet(Sets.newHashSet("Doctor", "Hospital", "Faculty", "Disease"));
代码语言:javascript复制
List list = Collections.emptyList();
List list = Collections.synchronizedList();//线程安全
Collections.unmodifiableList();

备注:这个List和我们平时常用的那个List是不一样的。这个方法返回的List是Collections类的一个静态内部类。

备注:这个List和我们平时常用的那个List是不一样的。这个方法返回的List是Collections类的一个静态内部类。它继承AbstractList后并没有实现add()、remove()等方法,因此这个返回值List并不能增加删除元素。这个方法主要目的就是返回一个不可变的列表,使用这个方法作为返回值就不需要再创建一个新对象,可以减少内存开销。并且返回一个size为0的List,调用者不需要校验返回值是否为null,所以建议使用这个方法返回可能为空的List。

代码语言:javascript复制
Map map = Collections.emptyMap(); 
Map map = Collections.synchronizedMap();//线程安全
Collections.unmodifiableMap();

Collections.reverse

描述:逆序排序,对当前集合的元素按照相反的顺序进行排序。

代码语言:javascript复制
Collections.reverse(list);

Collections.sort

描述:将集合按照默认的规则排序,按照数字从小到大的顺序排序

代码语言:javascript复制
List<String> list2 = Arrays.asList("tom", "kobe", "jordan", "tracy","westbook","yaoming","ace","stephen");

//按照字符串首字符的升序排列
Collections.sort(list2);

//这里是是使用匿名内部类来完成的
Collections.sort(list2, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        //指定比较规则,按照首字母降序来排列
        return o2.charAt(0)-o1.charAt(0);
    }
});

//这里是使用lambda表达式来完成
Collections.sort(list2,(o1,o2)->{ return o2.charAt(o2.length()-1)-o1.charAt(o1.length()-1);});

Collections.addAll

描述:addAll方法可以往集合中添加元素,也可往集合中添加一个集合

代码语言:javascript复制
Collections.addAll(list, 9, 20, 56);

Collections.shuffle

描述:洗牌方法,将当前集合内的数据进行随机排序。

代码语言:javascript复制
Collections.shuffle(list);

Collections.singletonList

描述:

代码语言:javascript复制

Collections.emptyList

描述:

代码语言:javascript复制

0 人点赞