import java.util.*;
class Compare
{
 public static void main(String[] args)
  {
     int[] x=new int[]{1,2};
    int[] y=new int[]{1,2};
if(x.equals(y))
  {
System.out.println(1);
  }
        else
  { System.out.println(2);
      }
       if(Arrays.equals(x,y))
  {
System.out.println(3);
  }
       else
  { System.out.println(4);
      }
  }
}
结果为什么是2 ,3我看core java多维数组的例子时候,虽然最后看懂了,头都大了,不知道你们以前是否有和我一样的经历?
import java.text.*;
import javax.swing.*;
public class CompoundInterest
{
   public static void main(String[] args)
   {
      final int STARTRATE = 10;
      final int NRATES = 6;
      final int NYEARS = 10;      // set interest rates to 10 . . . 15%
      double[] interestRate = new double[NRATES];
      for (int j = 0; j < interestRate.length; j++)
         interestRate[j] = (STARTRATE + j) / 100.0;      double[][] balances = new double[NYEARS][NRATES];      // set initial balances to 10000
      for (int j = 0; j < balances[0].length; j++)
         balances[0][j] = 10000;      // compute interest for future years
      for (int i = 1; i < balances.length; i++)
      {
         for (int j = 0; j < balances[i].length; j++)
         {
            // get last year's balances from previous row
            double oldBalance = balances[i - 1][j];            // compute interest
            double interest = oldBalance * interestRate[j];            // compute this year's balances
            balances[i][j] = oldBalance + interest;
         }
      }      // print one row of interest rates
      NumberFormat formatter= NumberFormat.getPercentInstance();   for (int j = 0; j < interestRate.length; j++)
   {
         System.out.println("       ");
 System.out.println(formatter.format(interestRate[j]));
   }
      System.out.println();      // print balance table
      formatter= NumberFormat.getPercentInstance();
  for (int i = 1; i < balances.length; i++)
      {
         // print table row
         for (int j = 0; j < balances[i].length; j++)
  {
 System.out.println("       ");
 System.out.println(formatter.format( balances[i][j]));
  }
         System.out.println();
      }
   }
}

解决方案 »

  1.   

    楼主还是回去认真看看java的基础书籍。
      

  2.   

    int[] x=new int[]{1,2};
    int[] y=new int[]{1,2};这里x,y是不同的两个图像,x.equals(y)检测两个对象是否相等,建议你去看看《JAVA编程思想》,Arrays.equals(x,y)仅仅是对值的检测。
      

  3.   

    数组equals
    public static boolean equals(int[] a,
                                 int[] a2) Stringequals
    public boolean equals(Object anObject)数组中没有x.equals(y)这个写法,我说得对吧?
      

  4.   

    equals 是Object的方法。默认比较的是 2个对象的hashcode。2个对象的hashcode一样的情况是很小的Arrays里的equals是重写的。 就比较2个对象的值
      

  5.   

    niange1to3(年古古)  说的没错你可以去看看《Thinking in java》!
      

  6.   

    对象的equals是在比较两个对象的引用,你应该重新定义该方法.Arrays中
    static boolean equals(int[] a, int[] a2) 
              如果两个指定的 int 型数组彼此相等,则返回 true。