怎么让2个数组在数组元素完全相同的情况下相同 意思是如果2个数组元素完全相同 那么 2个数组equals 或者== 是重写equals 方法吗 怎么重写?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java.util.Arrays中有相应的方法.public static boolean equals(double[] a, double[] a2)等等,如果是对象数组用下面的:public static boolean equals(Object[] a, Object[] a2)这时对象对应的类应该实现equals方法。 大概怎么重写??? 我要的效果是如果2个数组的元素都相同 那么 数组1 EQUALS数组2 返回TRUE 用来测试自己写的排序算法的准确性 把equals方法重写就可以啦,重新的内容就是比较两个数组里的内容是否一一对应相等是的话,就返回TRUE,否则返回FALSE java.util.Arrays 有一个静态方法equals() 数组也是对象,等号操作“==”判断的是二者的引用的是不是同一个对象,并没有调用equals方法,数组的equals方法似乎并没有重写,我用例子测试过,用的是String数组。用java.util.Arrays的equals()方法能够正确判断。import java.text.SimpleDateFormat;import java.util.*;import java.text.ParseException;import java.util.Arrays;public class Test{ public static void main(String[] arg) { String[] str1={"1","2"}; String[] str2={"1","2"}; if(str1.equals(str2)){ System.out.println("ok"); }else{ System.out.println("fail"); } if(str1==str2){ System.out.println("==ok"); }else{ System.out.println("==fail"); } if(Arrays.equals(str1, str2)){ System.out.println("java.util.Arrays ok"); }else{ System.out.println("java.util.Arrays fail"); } } } 为什么非要重写呢?自己写一个方法不行吗?public boolean isEqual(int[] a, int[] b) { if(a.length == b.length) { for(int i = 0; i < a.length; i++) { if(a[i] != b[i]) { return false; } } return true; } return false;} 如果数组元素是对象.用Arrays.equals()要重写对象的equals()方法,下面就是例子:import java.util.Arrays;public class Test{ public static void main (String[] args) { MyClass[] mc1={new MyClass(1),new MyClass(2)}; MyClass[] mc2={new MyClass(2),new MyClass(3)}; MyClass[] mc3={new MyClass(1),new MyClass(2)}; System.out.println(Arrays.equals(mc1,mc2)+" "+Arrays.equals(mc1,mc3)); } }class MyClass{ private int x; MyClass(int x){ this.x=x; } public boolean equals(Object another){ MyClass mc=(MyClass)another; if(mc.x==this.x) return true; return false; }} 菜鸟级的问题,求帮助 一个简单的gui程序报错 给分100!!邮件附件上传 GEF的api谁有呀,谢谢! [计算机.程序设计]重构.pdf 学到java的流了,但被那些文件类型搞糊涂了! 真心请教问题(有关多维数组的初始化问题) JFrame的图标可不可以修改啊? 简单问题 能举个最简单的多线程同步的程序例子吗? 关闭文件流后,怎么再重新打开它!! Java计算器小问题???
public static boolean equals(Object[] a, Object[] a2)
这时对象对应的类应该实现equals方法。
是的话,就返回TRUE,否则返回FALSE
数组的equals方法似乎并没有重写,我用例子测试过,用的是String数组。用java.util.Arrays的equals()
方法能够正确判断。import java.text.SimpleDateFormat;
import java.util.*;
import java.text.ParseException;
import java.util.Arrays;public class Test{
public static void main(String[] arg) { String[] str1={"1","2"};
String[] str2={"1","2"};
if(str1.equals(str2)){
System.out.println("ok");
}else{
System.out.println("fail");
}
if(str1==str2){
System.out.println("==ok");
}else{
System.out.println("==fail");
}
if(Arrays.equals(str1, str2)){
System.out.println("java.util.Arrays ok");
}else{
System.out.println("java.util.Arrays fail");
}
}
}
public boolean isEqual(int[] a, int[] b) {
if(a.length == b.length) {
for(int i = 0; i < a.length; i++) {
if(a[i] != b[i]) {
return false;
}
}
return true;
}
return false;
}
public class Test{
public static void main (String[] args) {
MyClass[] mc1={new MyClass(1),new MyClass(2)};
MyClass[] mc2={new MyClass(2),new MyClass(3)};
MyClass[] mc3={new MyClass(1),new MyClass(2)};
System.out.println(Arrays.equals(mc1,mc2)+" "+Arrays.equals(mc1,mc3));
}
}
class MyClass{
private int x;
MyClass(int x){
this.x=x;
}
public boolean equals(Object another){
MyClass mc=(MyClass)another;
if(mc.x==this.x) return true;
return false;
}
}