Java 在反向程序中是相等的

Java 在反向程序中是相等的,java,arrays,equals,Java,Arrays,Equals,该程序将查看两个数组中的元素,然后检查第一个数组是否与第二个数组相反。如果是,则返回true;如果不是,则返回false 示例: 数组1={1,2,3,4,5} Array2={5,4,3,2,1} 输出:真 示例2: 数组1={1,2,3,4,5} Array2={1,2,3,4,5} 输出:False 公共类测试 { 公共静态void main(字符串[]args) { int[]w={1,2,3,4,5}; int[]e={5,4,3,2,1}; 系统输出打印LN(isEqualInRev

该程序将查看两个数组中的元素,然后检查第一个数组是否与第二个数组相反。如果是,则返回true;如果不是,则返回false

示例:

数组1={1,2,3,4,5}

Array2={5,4,3,2,1}

输出:真

示例2: 数组1={1,2,3,4,5}

Array2={1,2,3,4,5}

输出:False

公共类测试
{
公共静态void main(字符串[]args)
{
int[]w={1,2,3,4,5};
int[]e={5,4,3,2,1};
系统输出打印LN(isEqualInReverse(w,e));
}
公共静态布尔isEqualInReverse(int[]a,int[]b){
for(int i=0;i=0;p--)
如果(a[i]!=b[p])
返回false;
}
返回true;
}
}

我已经尝试过实现这一点,但没有从我的程序中得到预期的结果。我做错了什么?

您嵌套了两个for循环,因此您将第一个循环中的每个元素与第二个循环中的每个元素进行比较

相反,您需要一个从1结尾开始的循环和索引

public static boolean isEqualInReverse(int [  ] a, int [  ] b){  
for (int i=0; i < b.length; i++) {
       if (b[i] != a[a.length-1-i]) {
          return false;
       }
 }
     return true;
 }
i、 e


对于(int i=0;i您应该只使用一个从1结尾开始的索引循环

public static boolean isEqualInReverse(int [  ] a, int [  ] b){  
for (int i=0; i < b.length; i++) {
       if (b[i] != a[a.length-1-i]) {
          return false;
       }
 }
     return true;
 }
公共静态布尔isEqualInReverse(int[]a,int[]b){
for(int i=0;i
应该是
a.length-1-i
@pbabcdefp非常正确,很好。为什么我的代码不能与嵌套的for循环一起工作?@edwardlavaire坐下来用笔和纸一步一步地计算每个程序在做什么。嵌套的for循环将一个数组中的每个条目与另一个数组中的每个条目进行比较。你还可以反转第二个array first.Collections.reverse()可以帮上忙。好的,你能解释一下为什么我的代码不起作用吗?
public static boolean isEqualInReverse(int [  ] a, int [  ] b){  
for (int i=0; i < b.length; i++) {
       if (b[i] != a[a.length-1-i]) {
          return false;
       }
 }
     return true;
 }