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类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 值得收藏!教你如何在IDEA中快速查看Java字节码

    值得收藏!教你如何在IDEA中快速查看Java字节码

    开发中如果我们想看JVM虚拟机怎么编译我们的Java文件,生成字节码的,用IDEA工具就可以查看,本篇文章就给大家详细介绍,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Mybatis 中的insertOrUpdate操作

    Mybatis 中的insertOrUpdate操作

    这篇文章主要介绍了Mybatis 中的insertOrUpdate操作,代码简单易懂,非常不错需要的的朋友参考下
    2016-12-12
  • Jmeter访问需要登录的接口如何处理问题

    Jmeter访问需要登录的接口如何处理问题

    这篇文章主要介绍了Jmeter访问需要登录的接口如何处理问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • springboot实现配置文件关键信息加解密

    springboot实现配置文件关键信息加解密

    在项目配置文件中常常会配置如数据库连接信息,redis连接信息等,连接密码明文配置在配置文件中会很不安全,所以本文就来聊聊如何使用springboot实现配置文件关键信息加解密吧
    2025-05-05
  • Javafx利用fxml变换场景的实现示例

    Javafx利用fxml变换场景的实现示例

    本文主要介绍了Javafx利用fxml变换场景的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • JavaEE通过response实现请求重定向

    JavaEE通过response实现请求重定向

    这篇文章主要介绍了JavaEE通过response实现请求重定向的方法,非常的简单实用,有需要的朋友可以参考下
    2014-10-10
  • 详解spring注解配置启动过程

    详解spring注解配置启动过程

    这篇文章主要为大家详细介绍了详解spring注解配置启动过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • springboot接入deepseek深度求索代码示例(java版)

    springboot接入deepseek深度求索代码示例(java版)

    这篇文章主要介绍了springboot接入deepseek深度求索的相关资料,包括创建APIKey,封装询问工具方法,传入问题,调用方法,但发现只能回答简单问题,需要的朋友可以参考下
    2025-01-01
  • 关于JDK15的新特性之TextBlocks文本块的引入和使用

    关于JDK15的新特性之TextBlocks文本块的引入和使用

    这篇文章主要介绍了关于JDK15的新特性之文本块的引入和使用,如果具有一种语言学机制,可以比多行文字更直观地表示字符串,而且可以跨越多行,而且不会出现转义的视觉混乱,那么这将提高广泛Java类程序的可读性和可写性,需要的朋友可以参考下
    2023-07-07
  • mybatis报错 resultMapException的解决

    mybatis报错 resultMapException的解决

    这篇文章主要介绍了mybatis报错 resultMapException的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论