`
xuedong
  • 浏览: 296716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

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

 

代码如下

 

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
7
分享到:
评论
3 楼 xuedong 2011-08-17  
handong890 写道
完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?

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



谢谢提醒啊。呵呵,主要还是基础不行
2 楼 handong890 2011-08-17  
完全不理解楼主这样的意义何在?
java没有提供方法供楼主使用?

Arrays.equals       判断两个数组是否相等
Arrays.deepEquals   深度判断两个数组是否相等(比如你在数组中还有数组)
1 楼 哈哈昕96 2011-08-17  

相关推荐

    js判断数组是否相等的方法

    在JavaScript中,判断两个数组是否相等是一个常见的需求,尤其在处理数据比较或者验证时。根据标题和描述,我们可以区分两种不同的场景: 1. **数组完全相等**:在这种情况下,不仅要求数组中的元素相同,而且元素...

    js判断两个数组是否完全相同

    在JavaScript(JS)中,判断两个数组是否完全相同是一个常见的需求,这可能涉及到对对象数组或字符串数组的比较。在编程实践中,数组的相同性不仅仅是元素数量的匹配,还需要考虑元素的顺序和值的精确匹配。下面我们...

    JavaScript中判断两个字符串是否相等的方法

    在JavaScript中判断两个字符串是否相等是编程基础中的重要内容,尤其对于初学者来说,理解字符串相等性的判断方法对于编写有效的代码至关重要。首先,要了解JavaScript提供了两种相等性运算符:“==”和“===”。这...

    Labview-比较两个字符串,显示相同字符个数

    Labview-比较两个字符串,显示相同字符个数

    JAVA 数组与字符串课程文档

    在处理字符串数组时,可以使用`Arrays`类提供的方法,如`sort()`进行排序,`toString()`转换为字符串形式,以及`equals()`比较两个数组是否相等。在上述示例代码中,展示了如何使用`compareTo()`对字符串数组进行...

    判断字符串是否为空

    `nil`和`NSNull`也是判断字符串是否为空时需要注意的特殊情况。在Objective-C中,`nil`表示对象不存在,而`NSNull`则常用于表示“无值”或“空值”。对于`nil`字符串,`length`方法会返回0,而`isEqualToString:`会...

    JS判断两个数组或对象是否相同的方法示例

    首先,判断两个数组是否相同,最简单直接的方式是对两个数组进行排序,然后转换成字符串进行比较。例如使用`JSON.stringify()`方法将数组转换为字符串后进行比较。若两个数组内容相同且排序后一致,它们的字符串表示...

    java 数组和字符串

    ` 比较两个数组是否相等。 #### 实验内容分析 实验中的任务涉及了对字符串合法性的检查,以及顾客消费管理系统的实现,涵盖了上述所有知识点的应用。例如,在检查Java文件名和邮箱格式时,利用了`String`类的`...

    IOS开发之判断两个数组中数据是否相同实例详解

    遍历结束后,根据`bol`的值来判断两个数组是否内容相同。 ```objc if (newArr.count == oldArr.count) { bol = true; for (int16_t i = 0; i ; i++) { id c1 = [oldArr objectAtIndex:i]; id newc = [newArr ...

    数组与字符串.docx

    - 使用`equals()`方法比较两个字符串是否相等,例如,`if (str1.equals(str2))`。 3. **字符串的拼接**: - 使用加号(`+`)或`concat()`方法连接两个字符串,例如,`String result = str1 + str2;` 或 `String ...

    Java 实例 - 判断数组是否相等源代码-详细设计教程.zip

    在Java编程中,判断两个数组是否相等是一个常见的任务,特别是在进行数据比较或者算法实现时。这个"Java实例 - 判断数组是否相等源代码-详细设计教程"应该包含了一系列的示例代码,用于教授如何在Java中有效地比较...

    判断两个数组的关系

    判断两个数组的关系 共有四种1 1是2的前缀 2是1的前缀 相等 不相等

    JavaScript比较两个数组的内容是否相同(推荐)

    在JavaScript中,比较两个数组的内容是否相同并非像比较基本类型那样简单,因为数组是对象,而`==`和`===`操作符在比较对象时,只会检查它们是否指向同一个内存地址,即比较的是引用,而不是内容。因此,直接使用`==...

    c语言字符串数组和特殊矩阵PPT学习教案.pptx

    * Strempty(S):判断字符串S是否为空串。 * Strclear(S):清除字符串S的内容。 * Strcompare(S1, S2):比较字符串S1和S2的大小。 * Strconcat(S1, S2):连接字符串S1和S2。 * Substring(S, i, len):从字符串S中提取...

    数据结构有关字符串数组的详细解答课件

    例如,字符串类可能有一个构造函数用于初始化字符串,一个`length()`方法返回字符串的长度,`equals()`方法用于判断字符串是否相等,以及`substring()`方法用于提取子串。 此外,对于大量稀疏数据的处理,我们会...

    matlab数组字符串

    - **相等性比较**:`isequal` 或 `strcmp` 可以比较两个字符串是否相同。 - **顺序比较**:`strcmpi` 对大小写不敏感,`strlessthan`、`strgreaterthan` 等用于比较字符串的顺序。 6. **数组操作**: - **索引...

    用c++比较两个字符串的大小

    ### 使用C++比较两个字符串的大小 在C++编程语言中,比较字符串是常见的操作之一。本篇文章将基于提供的代码示例,详细解释如何通过指针和`for`循环来比较两个字符串的大小。 #### 代码解读 首先,让我们详细了解...

    C#验证数组元素是否重复

    `Equals()`方法用于比较两个字符串是否相等,这里默认采用的是全等比较,即内容和大小写完全相同才认为相等。 #### 4. 布尔标志变量的使用 为了跟踪数组中是否找到重复元素,代码中使用了一个布尔变量`flag`,初始...

Global site tag (gtag.js) - Google Analytics