Java进阶——Collections

一、Collections

java.util.Collectionsjava提供的一个集合操作的工具类。

  • 如果提供给它们的集合或类对象为null,则此类的方法都抛出一个NullPointerException

1.static fields

static final List EMPTY_LIST;//空List,不可变
//public static final List EMPTY_LIST = new EmptyList<>();
static final Map EMPTY_MAP ;  //空Map,不可变
//public static final Map EMPTY_MAP = new EmptyMap<>();
static final Set EMPTY_SET ; //空Set,不可变
//public static final Set EMPTY_SET = new EmptySet<>();

2.static 方法

方法名返回值描述
addAll(Collection<? super T> c, T... elements)boolean将elements,添加到c集合中
copy(List<? super T> dest, List<? extends T> src)voidsrc集合中的元素复制到dest中,dest中的元素个数不能少于src中的元素个数
disjoint(Collection<?> c1, Collection<?> c2)boolean如果两个指定的集合没有共同的元素,则返回 true
fill(List<? super T> list, T obj)void用指定的元素代替指定列表的所有元素
max(Collection<? extends T> coll)T根据其元素的 自然顺序返回给定集合的最大元素,集合中的元素一定要实现Comparable接口
min(Collection<? extends T> coll)T原理同上,返回最小值
max(Collection<? extends T> coll, Comparator<? super T> comp)T根据指定的比较器引发的顺序返回给定集合的最大元素。 集合中的所有元素必须由指定的比较器相互比较
min(Collection<? extends T> coll, Comparator<? super T> comp)T原理同上,返回最小值
replaceAll(List<T> list, T oldVal, T newVal)boolean将列表中一个指定值的所有出现替换为另一个
reverse(List<?> list)void反转指定列表中元素的顺序
shuffle(List<?> list)void使用默认的随机源随机排列指定的列表
sort(List<T> list)void按照升序排列指定的列表。 列表中的所有元素必须实现Comparable接口
sort(List<T> list, Comparator<? super T> c)void根据指定的比较器引起的顺序对指定的列表进行排序。 列表中的所有元素必须使用指定的比较器相互比较
binarySearch(List<? extends Comparable<? super T>> list, T key)int使用二叉搜索算法搜索指定对象的指定列表,集合必须是排序后的。如果存在返回索引,如果不存在返回负数
binarySearch(List<? extends T> list, T key, Comparator<? super T> c)int使用二叉搜索算法搜索指定对象的指定列表,使用前必须排序

3.代码实现

public static void main(String[] args) {
        List list = new ArrayList();
        Collections.addAll(list, 1,2,3,4,5,6,7,8,9,10,11);
        System.out.println(list.size());
        List list1 = new ArrayList();
        list1.add(10);
        list1.add(9);
        list1.add(8);
        list1.add(7);
        list1.add(6);
        list1.add(5);
        list1.add(4);
        list1.add(3);
        list1.add(2);
        list1.add(1);
        list1.add(0);
        
        Collections.copy(list1, list);
        System.out.println(list);
        System.out.println(list1);
        System.out.println("=================");
        List list2 = new ArrayList();
        list2.add(20);
        list2.add(null);
        boolean flag = Collections.disjoint(list, list2);
        System.out.println(flag);
        
//      Collections.fill(list1, 6);
//      System.out.println(list1);
        
        
        List list3 = new ArrayList();
        list3.add(new Person("赵四2", 23));
        list3.add(new Person("赵四", 20));
        list3.add(new Person("赵四3", 23));
        list3.add(new Person("赵四1", 22));
        Object object = Collections.max(list3);
        Object object1 =  Collections.max(list3,new AgeComparator());
        System.out.println(object);
        System.out.println(object1);
        
        System.out.println("===============");
        
        Collections.replaceAll(list2, null, 100);
        System.out.println(list2);
        Collections.reverse(list1);
        System.out.println(list1);
        Collections.shuffle(list1);
        System.out.println(list1);
        
        System.out.println("============");
        System.out.println(list3);
        Collections.sort(list3);
        System.out.println(list3);
        
        System.out.println("=============");
        Collections.sort(list3, new AgeComparator());
        System.out.println(list3);
    }
public static void main(String[] args) {
        List list = new ArrayList();
        Collections.addAll(list, 2,5,1,0,8);
        Collections.sort(list);
        Collections.reverse(list);
        int index = Collections.binarySearch(list, 0);
        System.out.println(index); //0
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值