java Collections类 详解

这篇具有很好参考价值的文章主要介绍了java Collections类 详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、Collections类简介

三、Collections类常用方法演示

        1.static void reverse(List list) : 

                Δ代码演示 : 

        2.static void shuffle(List list) : 

                Δ代码演示 : 

        3.static void sort(List list) : 

                Δ代码演示 : 

        4.static void sort(List list, Comparator c) : 

                Δ代码演示 : 

        5.static void swap(List list, int i, int j) : 

                Δ代码演示 : 

        6.static T max(Collection coll) : 

                Δ代码演示 : 

        7.static T min(Collection coll) : 

                Δ代码演示 : 

        8.static int frequency(Collection c, Object o) : 

                Δ代码演示 : 

        9.static void copy(List dest, List src) : 

                Δ代码演示 : 

        10.static boolean replaceAll(List list, T oldVal, T newVal) : 

                Δ代码演示 : 

四、完结撒❀


一、前言

  • 大家好,本篇博文是对java集合篇章之Collections类的内容分享
  • 注意 : ①代码中的注释也很重要;不要眼高手低,自己跟着敲一遍代码才有收获;点击文章的侧边栏目录或者文章开头的目录可以进行跳转。
  • 良工不示人以朴,所有文章都会适时补充完善。大家如果有问题都可以在评论区进行交流或者私信up。感谢阅读!

二、Collections类简介

        Collections类是java提供的一个操作List,Set和Map等集合的工具类。Collections类中提供了一系列操作集合的静态方法,使用这些方法可以实现对集合元素的排序、查询、修改等操作
        Collections类位于java.base模块,java.util包下,如下图所示 :

java Collections类 详解

三、Collections类常用方法演示

        1.static void reverse(List<?> list) : 

                该方法可以对当前List集合中的元素进行反转,颠倒集合中元素的顺序。

                Δ代码演示 : 

                up以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author : Cyan_RA9
 * @version : 21.0
 */
public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //1.static void reverse(List<?> list) : 反转List集合中元素的顺序
        Collections.reverse(list);
        System.out.println("反转后的集合 = " + list);
    }
}

                运行结果 : 

java Collections类 详解

        2.static void shuffle(List<?> list) : 

                该方法可以对当前List集合进行“洗牌”,对List集合元素进行随机排序,且每次“洗牌”都是随机的。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();

        list.add("Cyan");
        list.add("RA9");
        list.add("CSDN YYDS");
        list.add("Ice");
        list.add("Bob");
        list.add("Kyrie");
        list.add("Irving");
        System.out.println("当前集合 = " + list);
        //2.static void shuffle(List<?> list) : “洗牌”
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
    }
}

                运行结果 : 

java Collections类 详解

        3.static void sort(List<T> list) : 

                该方法可以根据元素的自然顺序对指定的List集合进行升序排序。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //3.static void sort(List<T> list) : 升序排序
        Collections.sort(list);
        System.out.println("排序后的集合 = " + list);
    }
}

                运行结果 : 

java Collections类 详解

        4.static <T> void sort(List<T> list, Comparator<? super T> c) : 

                该方法可以根据指定的Comparator指定的顺序对指定的List集合进行升序排序。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,我们可以通过在匿名内部类中重写compare方法,更改排序的规则,比如说我们可以令List集合降序排列。代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //4.static <T> void sort(List<T> list, Comparator<? super T> c) : 指定排序
        Collections.sort(list, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                if (o1 instanceof Integer && o2 instanceof Integer)
                    return (Integer)o2 - (Integer)o1;
                return -1;
            }
        });
        System.out.println("排序后的集合 = " + list);
    }
}

                运行结果 : 

java Collections类 详解

        5.static void swap(List<?> list, int i, int j) : 

                该方法可以将指定List集合中的i元素和j元素进行交换。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //5.static void swap(List<?> list, int i, int j) : 指向元素进行交换
        Collections.swap(list, 0, list.size() - 1);

        System.out.println("交换元素后的集合 = " + list);
    }
}

                运行结果 :  

java Collections类 详解

        6.static T max(Collection<? extends T> coll) : 

                该方法可以根据元素的自然顺序,获取集合中的最大值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //6.static T max(Collection<? extends T> coll) : 获取集合中的最大值
        int max = (int) Collections.max(list);
        
        System.out.println("当前集合中最大的元素 = " + max);
    }
}

                运行结果 : 

java Collections类 详解

        7.static T min(Collection<? extends T> coll) : 

                该方法可以根据元素的自然顺序,获取集合中的最小值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //7.static T min(Collection<? extends T> coll) : 获取集合中的最小值
        int min = (int) Collections.min(list);

        System.out.println("当前集合中最大的元素 = " + min);
    }
}

                运行结果 : 

java Collections类 详解

        8.static int frequency(Collection<?> c, Object o) : 

                该方法可以返回指定元素在指定集合中一共出现的次数。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(5);
        list.add(11);
        list.add(11);
        list.add(11);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //8.static int frequency(Collection<?> c, Object o) :获取指定元素在指定集合中出现的次数
        int times_0 = Collections.frequency(list, 11);
        int times_1 = Collections.frequency(list, 233);
        int times_2 = Collections.frequency(list, 5);

        System.out.println("\n11在list集合中出现的次数 = " + times_0);
        System.out.println("233在list集合中出现的次数 = " + times_1);
        System.out.println("5在list集合中出现的次数 = " + times_2);
    }
}

                运行结果 : 

java Collections类 详解

        9.static <T> void copy(List<? super T> dest, List<? extends T> src) : 

                该方法可以将指定的旧集合中的元素拷贝到指定的新集合中。当新集合的长度小于旧集合时,抛出下标越界异常。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(5);
        list.add(11);
        list.add(11);
        list.add(11);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //9.static <T> void copy(List<? super T> dest, List<? extends T> src) : 将旧集合中的内容拷贝到新集合中
        List list2 = new ArrayList();
        try {
            Collections.copy(list2, list);
        } catch (Exception e) {
            System.out.print("新集合的长度小于旧集合时不能直接拷贝,否则抛出以下异常:");
            System.out.println(e.toString());
        }

        for (int i = 0; i < list.size(); ++i) {
            list2.add(null);
        }

        Collections.copy(list2, list);
        System.out.println("拷贝后的新集合 = " + list2);
    }
}

                运行结果 : 

java Collections类 详解

        10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) : 

                该方法可以将集合中指定的旧值全部替换为指定的新值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();

        list.add("Cyan");
        list.add("RA9");
        list.add("CSDN YYDS");
        list.add("Cyan");
        list.add("Cyan");
        list.add("Kyrie");
        list.add("Irving");
        System.out.println("当前集合 = " + list);
        //10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) : 用新值替换集合中的旧值
        Collections.replaceAll(list, "Cyan", "Ice");
        System.out.println("将\"Cyan\"全部替换为\"Ice\"后,集合为 = ");
        System.out.println(list);
    }
}

                运行结果 :  

java Collections类 详解

四、完结撒❀

        🆗,以上就是Collections类的全部内容了。内容本身没什么难度,主要是常用方法的汇总和演示,所见即所得。接下来,up将会和大家分享Java——泛型篇章的内容,我们不见不散。感谢阅读!

        System.out.println("END-------------------------------------------"); 文章来源地址https://www.toymoban.com/news/detail-408304.html

到了这里,关于java Collections类 详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java Collections类排序学习

    jdk自带排序学习,比如我们写一个排序代码 来看一下sort的实现 继续跟进 如果没有自定义排序就执行默认排序 legacyMergeSort 归并排序默认关闭的,重点关注 ComparableTimSort.sort 如果小于 private static final int MIN_MERGE = 32;大小就进行折半插入排序,如果大于32进行 TimSort排序 Timsort是

    2024年01月23日
    浏览(58)
  • Java - 集合工具类Collections

    前言 二.collections提供的方法  三. 方法详解 1.addAll:将所有指定元素添加到指定 collection 中。 可变参数  添加方式 二.shuffle():随机打乱List集合中的元素  三. sort():对List集合进行排序; 实现compatator,重写comapre方法,自定义比较规则  总结 大家好啊,又见面了,今天给大家讲一

    2024年02月06日
    浏览(44)
  • Java中Collections.singletonList的使用

    2024年04月11日
    浏览(67)
  • 【Java 21 新特性】顺序集合(Sequenced Collections)

    引入新的接口表示具有定义的遇到顺序的集合。每个这样的集合都有一个明确定义的第一个元素、第二个元素,依此类推,直到最后一个元素。提供统一的API来访问它的第一个和最后一个元素,并以相反的顺序处理它的元素。 \\\"生活只能向后理解;但必须向前生活。\\\"—基尔克

    2024年02月03日
    浏览(40)
  • 【Java 21 新特性 】顺序集合(Sequenced Collections)

    Java 21 中增加了一种新的集合类型:顺序集合(Sequenced Collections)。 要介绍顺序集合,就首先要说明一下出现顺序(encounter order)。出现顺序指的是在遍历一个集合时,集合中元素的出现顺序。 有些集合类型,有确定的出现顺序,比如  List 。不管遍历多少次这样的集合,其

    2024年02月05日
    浏览(39)
  • Java 21新特性:Sequenced Collections(有序集合)

    在JDK 21中,Sequenced Collections的引入带来了新的接口和方法来简化集合处理。此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。 下面一起通过本文来了解一下不同集合处理示例。 Sequenced Collections引入了三个新接口: SequencedColle

    2024年02月08日
    浏览(51)
  • Java代码审计——Commons Collections5 BadAttributeValueExpException

    反序列化总纲 cc链无非就是不同的调用拼接在一起形成的,比如cc5就是在cc1的基础上进行调用调整的。 在LazyMap的基础上,发现了一个新的调用方式,就是通过 TiedMapEntry+BadAttributeValueExpException的方式进行调用的。 在之前,我们知道LazyMap需要调用get方法才可以触发,那么我们

    2023年04月16日
    浏览(39)
  • 【java学习—十】操作集合的工具类Collections(8)

         Collections 是一个操作 Set 、 List 和 Map 等集合的工具类      Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。      排序操作:     • reverse(List) :反转 List 中元素

    2024年02月06日
    浏览(48)
  • Java中Collection与Collections有什么区别?Java常见面试题解析

    本文将为大家详细讲解Java中Collection与Collections的区别点,这是我们进行开发时经常用到的知识点,也是大家在学习Java中很重要的一个知识点,更是我们在面试时有可能会问到的问题! 文章较长,干货满满,建议大家收藏慢慢学习。文末有本文重点总结,主页有全系列文章分

    2024年02月06日
    浏览(34)
  • Java代码审计——Commons Collections AnnotationInvocationHandler readObject调用链

    反序列化总纲 观看顺序: Java代码审计——Commons Collections 迭代调用链 Java代码审计——Commons Collections TransformedMap调用链 AnnotationInvocationHandler作为Commons Collections最后一个触发阶段调用链来进行学习 首先来说AnnotationInvocationHandler,这个类是继承InvocationHandler,我们主要是要通过

    2023年04月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包