当前位置: 移动技术网 > IT编程>开发语言>Java > Java数组的相等

Java数组的相等

2020年07月12日  | 移动技术网IT编程  | 我要评论

在做数组的相等测试时使用 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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网