Arrays类

Arrays类常见方法

Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)

  • toString 返回数组的字符串形式 Arrays.toString(arr)
java 复制代码
public class ArraysMethod01 {
    public static void main(String[] args) {
        Integer[] integers = {1,20,90};
        //直接使用Arrays.toString方法,显示数组
        System.out.println(Arrays.toString(integers));
    }
}

结果

  • sort 排序(自然排序和定制排序)
    1,自然排序
java 复制代码
public class ArraysMethod01 {
    public static void main(String[] args) {
        Integer[] integers = {1,20,90,2};
        //自然排序
        Arrays.sort(integers);// {1,2,20,90}
        //直接使用Arrays.toString方法,显示数组
        System.out.println(Arrays.toString(integers));// {1,2,20,90}
    }
}

结果

2,定制排序

java 复制代码
public class ArraysMethod01 {
    public static void main(String[] args) {
        Integer[] integers = {1,20,90,2};
        //定制排序
        Arrays.sort(integers, new Comparator<>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                Integer i1 = (Integer) o1;
                Integer i2 = (Integer) o2;
                return i1 - i2;//从小到大
            }
        });
        System.out.println(Arrays.toString(integers));
    }
}

结果

3,冒泡+定制排序

java 复制代码
public class ArraysMethod02 {
    public static void main(String[] args) {
        int[] arr = {1, -1, 8, 0, 20};
        bubble01(arr, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                int i1 = (Integer) o1;
                int i2 = (Integer) o2;
                return i1 - i2;// return i2 - i1;
            }
        });
        System.out.println(Arrays.toString(arr));

    }

    //冒泡排序
    public static void bubble01(int[] arr, Comparator c) {
        int temp = 0;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
//                从小到大
                if (c.compare(arr[j],arr[j+1])>0) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

    }
}

结果

  • binarySearch通过二分搜索法进行查找元素位置
    1,要求必须排好序
    2,int index = Arrays.binarySearch(数组名,元素);
    3,如果数组中不存在该元素,就返回return-(low+1)
java 复制代码
public class ArraysMethod03 {
    public static void main(String[] args) {
        int[] arr = {-1, 0, 8, 20};
        int index = Arrays.binarySearch(arr,0);
        System.out.println(index);//1
    }
}

结果

  • copeOf :数组元素的复制
    Integer \[\] newArr = Arrays.copyOf(arr, arr.length);
    1,从arr数组中,拷贝arr.length个元素到newArr中
    2,如果拷贝的长度>arr.length 就在新数组后面增加null
    3,如果拷贝长度<0,就抛出异常NegativeArraySizeException
java 复制代码
public class ArraysMethod03 {
    public static void main(String[] args) {
        Integer[] arr = {1, -1, 8, 0, 20};
        Integer [] newArr = Arrays.copyOf(arr, arr.length);
        System.out.println(Arrays.toString(newArr));
    }
}

结果

  • fill:数组元素的填充
java 复制代码
public class ArraysMethod03 {
    public static void main(String[] args) {
        Integer[] arr = {1, -1, 8, 0, 20};
        //将所有元素替换成11
        Arrays.fill(arr,11);
        System.out.println(Arrays.toString(arr));
    }
}

结果

  • equals :比较两个数组元素是否完全一致
java 复制代码
public class ArraysMethod03 {
    public static void main(String[] args) {
        Integer[] arr = {1, -1, 8, 0, 20};
        Integer[] arr1 = {1, -1, 8, 0, 20};
        //判断内容是否一致  一致T  不一致F
        boolean equals = Arrays.equals(arr, arr1);
        System.out.println("equals="+equals);//T

    }
}

结果

  • asList :将一组值,转换成list集合
java 复制代码
public class ArraysMethod03 {
    public static void main(String[] args) {
        List list = Arrays.asList(1, 2, 3, 4);
        System.out.println("list="+list);
        System.out.println("list的运行类型"+list.getClass());
    }
}

结果

相关推荐
weixin_460443561 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w4 小时前
什么是AOP
java
Cc.Y5 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck5 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787055 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev5 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by209995 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说5 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Sarvartha5 小时前
Lambda 表达式和函数式接口
java·开发语言
计算机毕业设计杰瑞5 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计