笔记:判断数组内容是否相同

public class Main {
    public static void main(String[] args) {
    int[] a={1,2,3};
    int[] b={1,2,3};
    equals(a,b);
    }
    private static boolean equals(int[] c,int[] d) {
        int i = 0;
        while (c[i] == d[i]) {
            i++;
        }
        if(i!= c.length)
            return false;
        else
            return true;
    }
    }

eqauls是比较数组内容是否相同的方法,但这样写并不能正常运行,出现了报错

原因是写了一个死循环:如果两个数组的内容是相同的,那么在比较完最后一位后,循环会尝试继续比较数组的下一个位置,但这些位置实际上是超出了数组的长度,因此这些比较会被认为是相同的,所以需要在while循环里添加一个结束循环的条件才行

public class Main {
    public static void main(String[] args) {
    int[] a={1,2,3};
    int[] b={1,2,3};
    boolean yes=equals(a,b);
    System.out.println(yes);
    }
    private static boolean equals(int[] c,int[] d) {
        int i = 0;
        while (i< c.length&&c[i] == d[i]) {//i< c.length应该在c[i] == d[i]之前判断,要先知道i是否超出数组的长度,才进行下一步的判断
            i++;
        }
        if(i!= c.length)
            return false;
        else
            return true;
    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值