欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java数组的相等

程序员文章站 2022-11-23 11:35:23
在做数组的相等测试时使用 Arrays.equals() ,但是如果数组中内部自定义的类,需要自己定义equals()函数来覆盖Object.equals()public class Main { public static void main(String[] args) throws Exception { // 数组中是基本类型 没问题 int[] ary = {1, 2, 3, 4, 5, 6}; int[] ary1 =...

在做数组的相等测试时使用 Arrays.equals() ,但是如果数组中内部自定义的类,需要自己定义equals()函数来覆盖Object.equals()

public class Main {
    public static void main(String[] args) throws Exception {
        
        // 数组中是基本类型 没问题
        int[] ary = {1, 2, 3, 4, 5, 6};
        int[] ary1 = {1, 2, 3, 4, 5, 6};
        int[] ary2 = {1, 2, 3, 4};
        System.out.println("数组 ary 是否与数组 ary1相等? :"
                + Arrays.equals(ary, ary1));
        System.out.println("数组 ary 是否与数组 ary2相等? :"
                + Arrays.equals(ary, ary2));

        // 如果是自定义类型,虽然实例域相同但是还是输出false
        MyClass[] ary3 = new MyClass[2];
        ary3[0] = new MyClass(0,"a");
        ary3[1] = new MyClass(1,"b");
        MyClass[] ary4 = new MyClass[2];
        ary4[0] = new MyClass(0,"a");
        ary4[1] = new MyClass(1,"b");
        System.out.println("数组 ary3 是否与数组 ary4相等? :"
                + Arrays.equals(ary3, ary4));
    }
}

class MyClass{
    private int myInt;
    private String myStr;
    MyClass(int myInt, String myStr){
        this.myInt = myInt;
        this.myStr = myStr;
    }
}

参考

[1] Cay S. Horstmannn.Java核心技术 卷I 基础知识(原书第10版)[M].机械工业出版社:北京,2017:166.
[2] Java 实例 - 判断数组是否相等

本文地址:https://blog.csdn.net/Ackerman2/article/details/107283925