java中Collection和Collections的区别,以及Collection和Collections的常用方法

1.java.util.Collection

  1. Collection是一个集合框架的父接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
  2. Collection接口的继承树,i 代表接口,c 代表实现类

在这里插入图片描述
3.Collection接口是Set、List和Queue接口的父接口,Collection通常情况下不被直接使用。
因此Collection 接口定义了一些通用的方法,List 接口和 Set 接口继承自 Collection 接口,所以也可以调用这些方法。

方法作用
add(Object o)向集合中添加一个元素
addAll(Collection c)向集合中添加集合 c 中的所有元素
clear()清除所有元素
contains(Object o)判断集合中是否包含指定元素
containsAll(Collection c)判断集合中是否包含集合 c 中的所有元素
isEmpty()判断集合是否为空
iterator()返回Iterator对象,用于遍历集合中的元素
remove(Object o)删除一个指定元素
removeAll(Collection c)删除集合 c 中所有的元素
retainAll(Collection c)仅保留集合 c 中出现的元素
int size()返回集合中元素的个数
Object[] toArray()把集合转换为一个数组

2.java.util.Collections

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

方法作用
sort()对集合进行排序
reverse()反转集合中的元素的顺序
shuffle()对集合进行随机排序
max() , min()获取集合最大值、最小值
binarySearch()二分查找查找集合指定元素,返回元素所在索引,若元素不存在,返回该元素最有可能存在的位置索引
indexOfSubList()查找子串在集合中首次出现的位置
lastIndexOfSubList()查找子串在集合中首次出现的位置,从后往前找
replaceAll()替换集合中指定的元素,若元素存在返回true,否则返回false
rotate()集合中的元素向后移动k位置
copy(list1,list2)将集合list2中的元素复制到list1中,并覆盖相应索引位置的元素
swap()交换集合中指定元素的位置
fill()替换集合中的所有元素,用对象object
nCopies()生成一个指定大小与内容的集合
enumeration()为集合生成一个枚举

代码演示:

public static void main(String[] args) {
        List<Integer> list1 = new ArrayList<Integer>();
        list1.add(4);
        list1.add(5);
        list1.add(9);
        list1.add(2);
        list1.add(3);
        System.out.println(list1);

        //对集合进行排序
        Collections.sort(list1);
        System.out.println(list1);

        //反转集合中的元素的顺序
        Collections.reverse(list1);
        System.out.println(list1);

        //对集合进行随机排序
        Collections.shuffle(list1);
        System.out.println(list1);

        //获取集合最大值、最小值
        int max = Collections.max(list1);
        int min = Collections.min(list1);
        System.out.println("最大值:" + max + " 最小值: " + min);

        List<String> list2 = Arrays.asList("one,two,three,four,five,six,seven".split(","));
        System.out.println(list2);

        //二分查找查找集合指定元素,返回元素所在索引,若元素不存在,n表示该元素最有可能存在的位置索引
        int index1 = Collections.binarySearch(list2, "three");
        int index2 = Collections.binarySearch(list2, "ffff");
        System.out.println(index1);
        System.out.println(index2);

        //查找子串在集合中首次出现的位置
        List<String> subList = Arrays.asList("three,four".split(","));
        int index3 = Collections.indexOfSubList(list2, subList);
        System.out.println(index3);
        //从后往前找
        int index4 = Collections.lastIndexOfSubList(list2, subList);
        System.out.println(index4);

        //替换集合中指定的元素,若元素存在返回true,否则返回false
        boolean flag = Collections.replaceAll(list2, "seven", "替换");
        System.out.println(flag);


        //集合中的元素向后移动k位置,后面的元素出现在集合开始的位置
        Collections.rotate(list2, 3);
        System.out.println(list2);

        //将集合list3中的元素复制到list2中,并覆盖相应索引位置的元素
        List<String> list3 = Arrays.asList("1,2,3".split(","));
        Collections.copy(list2, list3);
        System.out.println(list2);

        //交换集合中指定元素的位置
        Collections.swap(list2, 0, 3);
        System.out.println(list2);

        //替换集合中的所有元素,用对象object
        Collections.fill(list2, "****");
        System.out.println(list2);

        //生成一个指定大小与内容的集合
        List<String> list4 = Collections.nCopies(5, "00000");
        System.out.println(list4);

        //为集合生成一个枚举
        List<String> list5 = Arrays.asList("I am a student".split(" "));
        Enumeration<String> e = Collections.enumeration(list5);
        while (e.hasMoreElements()) {
            System.out.println(e.nextElement());
        }
    }

运行结果

在这里插入图片描述

参考文章:
Java:集合,Collection接口框架图
Java集合类Collections常用方法总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高并发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值