关于数组比较的效率问题 我现在想实现两个数组的比较,应该用什么方式比较效率比较高啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数组的比较,除了先比较数组长度外,必然是遍历整个数组,并一一比较对应的元素。至于遍历的顺序,除非数组的元素分布有特别之处,否则没有什么区别。顺序或者逆序都可以。boolean equals(int[] array1,int[] array2){ if(array1.length!=array2.length) return false; for(int i=0;i<array1.length;i++) if (array1.[i]!=array2.[i]) return false; return true;} 不用楼上的这么麻烦,Arrays.equals(array1,array2)就ok了 看一下equals的源码:public static boolean equals(Object[] a, Object[] a2) { if (a==a2) return true; if (a==null || a2==null) return false; int length = a.length; if (a2.length != length) return false; for (int i=0; i<length; i++) { Object o1 = a[i]; Object o2 = a2[i]; if (!(o1==null ? o2==null : o1.equals(o2))) return false; } return true; } 放到hashset里,循环判断是否contains,输出重复的结果效率基本上都差不多的吧,二重循环肯定要的 JAVA怎样从txt文件中读入数据到相应类型的数组 问题 紧急求助:Applet和它所在网页的交互问题 求助:我用applet做的一个线形报表 计算一组数(n个)有多少种不同的组合方式? UML老是弹出这么一个对话框! 有没有人用过mina框架啊 ? apache 和tomcat 我这样用getProperty为何不行? 以下代码干什么用的?(摘自jdk1.3 Demo) 谁有java servlet API?最好是中文的!! 编译器为什么把我定义的float变量认为是double的?
boolean equals(int[] array1,int[] array2)
{
if(array1.length!=array2.length)
return false;
for(int i=0;i<array1.length;i++)
if (array1.[i]!=array2.[i])
return false;
return true;
}
Arrays.equals(array1,array2)就ok了
public static boolean equals(Object[] a, Object[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false; int length = a.length;
if (a2.length != length)
return false; for (int i=0; i<length; i++) {
Object o1 = a[i];
Object o2 = a2[i];
if (!(o1==null ? o2==null : o1.equals(o2)))
return false;
} return true;
}
效率基本上都差不多的吧,二重循环肯定要的