Java—Arrays api

java 复制代码
public static String toString(数组)                         //把数组拼接成一个字符串
public static int binarySearch(数组,查找的元素)            //二分查找法查找元素
public static int[] copyOf(原数组,新数组长度)               //拷贝数组
public static int[] copyOfRange(原数组,起始索引,结束索引)   //拷贝数组(指定范围)
public static void fill(数组,需要填充的元素)                //填充数组
public static void sort(数组)                               //按照默认方式进行数组排序
public static void sort(数组,排序规则)                     //按照指定的规则排序

目录

binarySearch

copyOf

copyOfRange

sort


binarySearch

  1. 二分查找的前提:数组中的元素必须是升序的;

  2. 如果要查找的元素存在,则返回查找到的元素的索引;如果要查找的元素不存在,则返回 (-插入点)-1。

代码示例

java 复制代码
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(Arrays.binarySearch(arr, 6)); //5
System.out.println(Arrays.binarySearch(arr, 10));//9
System.out.println(Arrays.binarySearch(arr, 20));//-11

copyOf

参数一:旧数组

参数二:新数组的长度

方法的底层会根据第二个参数来创建新的数组,

如果新数组的长度 < 旧数组的长度,会部分拷贝;

如果新数组的长度 = 旧数组的长度,会完全拷贝;

如果新数组的长度 > 旧数组的长度,会补上默认初始值。

代码示例

java 复制代码
public static void main(String[] args) throws ParseException {

    int[] arr = {1, 2, 3, 4, 5};

    int[] newArr1 = Arrays.copyOf(arr, 3);
    System.out.println(Arrays.toString(newArr1));// [1, 2, 3]

    int[] newArr2 = Arrays.copyOf(arr, 5);
    System.out.println(Arrays.toString(newArr2));// [1, 2, 3, 4, 5]

    int[] newArr3 = Arrays.copyOf(arr, 8);
    System.out.println(Arrays.toString(newArr3));// [1, 2, 3, 4, 5, 0, 0, 0]

}

copyOfRange

**注意:**对于数据拷贝的范围包头不包围,包左不包右

代码示例

java 复制代码
public static void main(String[] args) throws ParseException {

    int[] arr = {1, 2, 3, 4, 5};
    int[] newArr1 = Arrays.copyOfRange(arr, 0, 4);
    System.out.println(Arrays.toString(newArr1));// [1, 2, 3, 4]

}

sort

java 复制代码
public static void main(String[] args) throws ParseException {

    Integer[] arr = {5, 3, 4, 2, 1};
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));// [1, 2, 3, 4, 5]

    Arrays.sort(arr,new Comparator<Integer>(){
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2-o1; //倒序排序
            //return o1-o2 正序排序(默认)
        }
    });
    System.out.println(Arrays.toString(arr));// [5, 4, 3, 2, 1]

}
相关推荐
皮皮林5513 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
卡尔特斯7 小时前
Android Kotlin 项目代理配置【详细步骤(可选)】
android·java·kotlin
白鲸开源7 小时前
Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录
java·ubuntu·开源
ytadpole7 小时前
Java 25 新特性 更简洁、更高效、更现代
java·后端
纪莫7 小时前
A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?
java·java面试⑧股
JavaGuide8 小时前
JDK 25(长期支持版) 发布,新特性解读!
java·后端
用户3721574261358 小时前
Java 轻松批量替换 Word 文档文字内容
java
白鲸开源8 小时前
教你数分钟内创建并运行一个 DolphinScheduler Workflow!
java
CoovallyAIHub9 小时前
中科大DSAI Lab团队多篇论文入选ICCV 2025,推动三维视觉与泛化感知技术突破
深度学习·算法·计算机视觉
Java中文社群9 小时前
有点意思!Java8后最有用新特性排行榜!
java·后端·面试