自己写两个判断字符串数组是否相等或数组内容是否相同,大家看上如何改进上
自己写两个判断字符串数组是否相等或数组内容是否相同,大家看下怎么改进下
谢谢提醒啊。呵呵,主要还是基础不行
在项目中经常用到判断两个数组经常相等,或者是判断数组内容是否相同(即排序后再判断是否相等)。想封装个方法方便日后使用。自己在这写了下,技术有限。大家看看还有什么地方可以改进,大家共同进步,呵呵。
代码如下
package test; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Tool { /** * 判断两个数组是否相等 * *@param a *@param b *@return */ public boolean arrayIsEqual(String[] a, String[] b) { if(a!=null&&b!=null){ if (a.length != b.length) { return false; } else { for (int i = 0; i < a.length; i++) { if(a[i]==null){ if(b[i]!=null){ return false; } }else{ if (!a[i].equals(b[i])) { return false; } } } } return true; }else { if(a==null&&b==null){ return true; }else{ return false; } } } /** * 判断两个数组内容是否相同 * *@param a *@param b *@return */ public boolean arraySortedIsEqual(String[] a, String[] b) { if(a!=null&&b!=null){ List<String> tmpA=Arrays.asList(a); List<String> tmpB=Arrays.asList(b); Collections.sort(tmpA, new ComparatorString()); Collections.sort(tmpB, new ComparatorString()); return this.arrayIsEqual(tmpA.toArray(new String[tmpA.size()]), tmpB.toArray(new String[tmpB.size()])); }else if(a==null&&b==null){ return true; }else{ return false; } } class ComparatorString implements Comparator<Object>{ @Override public int compare(Object o1, Object o2) { if(o1==null&&o2==null){ return 0; }else if(o1!=null&&o2!=null){ String s1=(String)o1;; String s2=(String)o2; if(s1.compareTo(s2)>0){ return 1; }else{ return 0; } }else{ if(o1==null){ return 0; }else{ return 1; } } } } public static void main(String[] args) { Tool tool= new Tool(); String[] a = { "111", null, "444", "333" }; String[] b = { "111", "444", "333" ,null}; String[] c = { "111", "222", "444", "333" }; System.out.println(tool.arrayIsEqual(a, b)); System.out.println(tool.arrayIsEqual(a, c)); System.out.println(tool.arraySortedIsEqual(a, b)); } }
希望大家能提修改意见。
1 楼
哈哈昕96
2011-08-17
2 楼
handong890
2011-08-17
完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?
Arrays.equals 判断两个数组是否相等
Arrays.deepEquals 深度判断两个数组是否相等(比如你在数组中还有数组)
java没有提供方法供楼主使用?
Arrays.equals 判断两个数组是否相等
Arrays.deepEquals 深度判断两个数组是否相等(比如你在数组中还有数组)
3 楼
xuedong
2011-08-17
handong890 写道
完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?
Arrays.equals 判断两个数组是否相等
Arrays.deepEquals 深度判断两个数组是否相等(比如你在数组中还有数组)
java没有提供方法供楼主使用?
Arrays.equals 判断两个数组是否相等
Arrays.deepEquals 深度判断两个数组是否相等(比如你在数组中还有数组)
谢谢提醒啊。呵呵,主要还是基础不行