首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

自己写两个判断字符串数组是否相等或数组内容是否相同,大家看上如何改进上

2012-11-18 
自己写两个判断字符串数组是否相等或数组内容是否相同,大家看下怎么改进下在项目中经常用到判断两个数组经

自己写两个判断字符串数组是否相等或数组内容是否相同,大家看下怎么改进下

在项目中经常用到判断两个数组经常相等,或者是判断数组内容是否相同(即排序后再判断是否相等)。想封装个方法方便日后使用。自己在这写了下,技术有限。大家看看还有什么地方可以改进,大家共同进步,呵呵。

?

代码如下

?

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));    }}

?

?

希望大家能提修改意见。?

?

2 楼 handong890 2011-08-17   完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?

Arrays.equals       判断两个数组是否相等
Arrays.deepEquals   深度判断两个数组是否相等(比如你在数组中还有数组) 3 楼 xuedong 2011-08-17   handong890 写道完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?

Arrays.equals       判断两个数组是否相等
Arrays.deepEquals   深度判断两个数组是否相等(比如你在数组中还有数组)


谢谢提醒啊。呵呵,主要还是基础不行

热点排行