Java中Arrays类和Collections类常用方法示例详解

 更新时间:2025年07月17日 11:35:18   作者:只是当时已惘然——  
本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高效处理集合与数组数据,感兴趣的朋友跟随小编一起看看吧

Arrays.fill()相关用法

    int arr[] = new int[5];
        //所有元素赋值为5
        Arrays.fill(arr,5);
        //从索引[1,3)赋值为1
        Arrays.fill(arr,1,3,1);
        //从索引[2,4)赋值为2
        Arrays.fill(arr,2,4,2);

Arrays.toString()

//将数组元素放入字符串中,可以方便快速打印数组元素
//底层实现
        //使用StringBuilder拼接字符串
        StringBuilder b = new StringBuilder();
        //在开头加[
        b.append('[');
        //遍历数组拼接元素
        for (int i = 0; ; i++) {
            b.append(String.valueOf(a[i]));
            if (i == iMax)
                //末尾拼接]并转为String类型
                return b.append(']').toString();
            b.append(", ");
        }

Arrays.sort()

//排序,默认为升序排序
        //[3, 3, 5, 2, 2]
        Arrays.sort(arr2);
        //打印结果:[2, 2, 3, 3, 5]
        System.out.println(Arrays.toString(arr2));
        //倒序排序,Collections.reverseOrder()返回一个比较器
        Arrays.sort(arr2, Collections.reverseOrder());

Arrays.equals() 

      //比较两个数组中元素是否相等
        //相同:true,不同:false
        System.out.println(Arrays.equals(arr1,arr2));

Arrays.binarySearch() ​​​​

       //二分查找元素是否存在数组
        int arr4[] = {1,3,3,3,3};
        //返回二分查找第一次匹配到元素的索引值,不保证返回的是第一个出现的位置,如果不存在则返回实际插入索引+1的负数
        //2
        System.out.println(Arrays.binarySearch(arr4,3));
        //-6
        System.out.println(Arrays.binarySearch(arr4,10));
        //数组区间查找,[0,3),返回第一次命中的下表
        System.out.println(Arrays.binarySearch(arr4,0,3,3));

Arrays.copyOf()和Arrays.copyOfRange()

  int arr5[] = {1,2,3,4,5};
        //拷贝前三个元素[1,2,3]
        int[] arr6 = Arrays.copyOf(arr5, 3);
        //拷贝下标[2,5):[3,4,5]
        int[] arr7 = Arrays.copyOfRange(arr5, 2, 5);
        //若超过arr5长度,后面元素补0:[3,4,5,0,0...]
        copyOfRange(arr5, 2, 9);

Arrays.asList()

//将对象数组转为list集合,不能是基本类型的数组
Integer arr8[] = {1,2,3,4,5};
List<Integer> list = Arrays.asList(arr8);

Collections.addAll()

List<Integer> list = new ArrayList<>();
//向集合中一次添加多个元素
Collections.addAll(list,2,4,3,23,43);

Collections.sort()

//根据类型中实现的Comparable接口的compareTo()方法排序,或第二个参数放入自定义的比较器
Collections.sort(list);

Collections.binarySearch()

   //二分查找,获取指定元素的索引,若未查找到,返回应插入的元素位置的负数-(索引+1)
        int idx = Collections.binarySearch(list, 3);
        System.out.println("key 下标为:"+ idx);

Collections.shuffle()

      Collections.addAll(list,2,4,3,23,43);
        Collections.sort(list);
        System.out.println(list);
        //打乱顺序
        Collections.shuffle(list);
        System.out.println(list);

结果:

Collections.reverse()    ​​​​​​​

    //翻转元素顺序
        Collections.reverse(list);
        System.out.println(list);

Collections.min() & Collections.max()

//根据元素类型实现的Comparable接口中的compareTo()方法比较获取最大值和最小值
        int max = Collections.max(list);
        System.out.println("最大值:" + max);
        int min = Collections.min(list);
        System.out.println("最小值:" + min);

Collections.fill()

//集合中所有元素设置为0
Collections.fill(list, 0);

Collections.swap()

//交换集合中两个索引的元素
Collections.swap(list, 0, 2);

Collections.copy()

//拷贝一个集合到另一个集合中
        List<Integer> list2 = new ArrayList<>();
        List<Integer> list3 = new ArrayList<>();
        //将list3拷贝到list2中,list3的长度必须小于等于list2
        Collections.addAll(list3,1,2,3,4,5);
        Collections.addAll(list2,0,0,0,0,0);
        Collections.copy(list2,list3);
        System.out.println(list2);

Collections.replaceAll()

       //集合中所有元素为2的值替换为100
        System.out.println(list2);
        Collections.replaceAll(list2,2,100);

到此这篇关于Java中Arrays类和Collections类常用方法的文章就介绍到这了,更多相关java arrays类和collections类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • sa-token整合springboot中的代码示例展示

    sa-token整合springboot中的代码示例展示

    sa-token 是一个轻量级的 Java 权限认证框架,它可以很方便地集成到 Spring Boot 项目中,以提供简洁的认证和授权功能,这篇文章主要介绍了sa-token整合springboot中的代码示例展示,需要的朋友可以参考下
    2024-04-04
  • JavaWeb中使用JavaMail实现发送邮件功能实例详解

    JavaWeb中使用JavaMail实现发送邮件功能实例详解

    这篇文章主要介绍了JavaWeb中使用JavaMail实现发送邮件功能的实例代码,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-05-05
  • 使用Springboot实现OAuth服务的示例详解

    使用Springboot实现OAuth服务的示例详解

    OAuth(Open Authorization)是一个开放标准,用于授权第三方应用程序访问用户资源,而不需要共享用户凭证。本文主要介绍了如何使用Springboot实现一个OAuth服务,需要的可以参考一下
    2023-05-05
  • MyBatis-plus更新对象时将字段值更新为null的实现方式

    MyBatis-plus更新对象时将字段值更新为null的实现方式

    mybatis-plus在执行更新操作,当更新字段为 空字符串 或者 null 的则不会执行更新,如果要将指定字段更新null,可以通过以下三种方式实现,感兴趣的小伙伴跟着小编一起来看看吧
    2023-10-10
  • Spring @EventListener 异步中使用condition的问题及处理

    Spring @EventListener 异步中使用condition的问题及处理

    这篇文章主要介绍了Spring @EventListener 异步中使用condition的问题及处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 从零开始Java实现Parser Combinator

    从零开始Java实现Parser Combinator

    这篇文章主要为大家介绍了从零开始Java实现Parser Combinator过程及原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Mybatis Plus 增删改查的实现(小白教程)

    Mybatis Plus 增删改查的实现(小白教程)

    本文主要介绍了Mybatis Plus 增删改查,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • HashMap之keyset()方法底层原理解读

    HashMap之keyset()方法底层原理解读

    这篇文章主要介绍了HashMap之keyset()方法底层原理解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MybatisPlus多表连接查询的具体实现

    MybatisPlus多表连接查询的具体实现

    MyBatis Plus是一款针对MyBatis框架的增强工具, 它提供了很多方便的方法来实现多表联查,本文主要介绍了MybatisPlus多表连接查询的具体实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Java无需解压直接读取ZIP压缩包里的文件及内容

    Java无需解压直接读取ZIP压缩包里的文件及内容

    最近开发的时候遇到要获取到zip压缩包里面的文件内容,解决方案就是通过ZipInputStream来读取,下面通过实例代码介绍Java无需解压直接读取ZIP压缩包里的文件及内容,感兴趣的朋友跟随小编一起看看吧
    2024-03-03

最新评论