Collections工具类

时间:2024-4-16    作者:老大夫    分类: JAVA


ColLections概述
Collections 是一个操作 Set、List 和 Map 等集合的工具类。

排序操作:

方法 作用
reverse(List) 反转 List 中元素的顺序
shuffle(List) 对 List 集合元素进行随机排序
sort(List) 根据元素的自然顺序对指定 List 集合元素按升序排序
sort(List,Comparator) 根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
swap(List,int, int) 将指定 list 集合中的 i 处元素和 j 处元素进行交换

查找

方法 作用
Object max(Collection) 根据元素的自然顺序,返回给定集合中的最大元素
Object max(Collection,Comparator) 根据 Comparator 指定的顺序,返回给定集合中的最大元素
Object min(Collection) 根据元素的自然顺序,返回给定集合中的最小元素
Object min(Collection,Comparator) 根据 Comparator 指定的顺序,返回给定集合中的最小元素
int binarySearch(List list,T key) 在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且必须是可比较大小的,即支持自然排序的。而且集合也事先必须是有序的,否则结果不确定。
int binarySearch(List list,T key,Comparator c) 在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且集合也事先必须是按照c比较器规则进行排序过的,否则结果不确定。
int frequency(Collection c,Object o) 返回指定集合中指定元素的出现次数

复制、替换

方法 作用
void copy(List dest,List src) 将src中的内容复制到dest中
boolean replaceAll(List list,Object oldVal,Object newVal) 使用新值替换 List 对象的所有旧值
提供了多个unmodifiableXxx()方法,该方法返回指定 Xxx的不可修改的视图。

添加

方法 作用
boolean addAll(Collection c,T... elements) 将所有指定元素添加到指定 collection 中。

同步

方法 作用
Collections 类中提供了多个 synchronizedXxx() 方法, 该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题:

举例

public class CollectionsTest {
    public static void main(String[] args) {
        List list = Arrays.asList(45,43,65,6,43,2,32,45,56,34,23);
        System.out.println(list);
        //reverse 反转
        Collections.reverse(list);
        System.out.println(list);
        //shuffle随机化
        Collections.shuffle(list);
        System.out.println(list);
        //sort 升序排序
        Collections.sort(list);
        System.out.println(list);
        //降序需要定制排序,sort(list l,comparator c)

        //max获取最大值
        System.out.println(Collections.max(list));
        //max(list l,comparator c)定制比较获取最大值,是取list列表最右面的元素

        //frequency获取元素出现了几次
        int frequency = Collections.frequency(list,45);
        System.out.println("出现了"+frequency+"次");

        //copy赋值,注意复制之前确定newList的size大于老List的size
        List newList =  Arrays.asList(new Object[list.size()]);
        Collections.copy(newList,list);
        System.out.println(newList);

        //unmodifiableList方法返回一个可读但不可修改的list
        List unmodifiableList = Collections.unmodifiableList(newList);

        //synchronizedList方法使arrayList变成线程安全的List,返回的list1是线程安全的
        List list1 = Collections.synchronizedList(list);
    }
}

版权所有:伸手党盘
文章标题:Collections工具类
文章链接:https://ssdpan.cn/?post=386
本站文章来源于网络搜集和原创,仅供学习使用,未经授权请勿用于任何商业用途,如有侵权及时联系删除

推荐阅读:


扫描二维码,在手机上阅读