在项目中经常用到判断两个数组经常相等,或者是判断数组内容是否相同(即排序后再判断是否相等)。想封装个方法方便日后使用。自己在这写了下,技术有限。大家看看还有什么地方可以改进,大家共同进步,呵呵。
代码如下
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)); } }
希望大家能提修改意见。
相关推荐
在JavaScript中,判断两个数组是否相等是一个常见的需求,尤其在处理数据比较或者验证时。根据标题和描述,我们可以区分两种不同的场景: 1. **数组完全相等**:在这种情况下,不仅要求数组中的元素相同,而且元素...
在JavaScript(JS)中,判断两个数组是否完全相同是一个常见的需求,这可能涉及到对对象数组或字符串数组的比较。在编程实践中,数组的相同性不仅仅是元素数量的匹配,还需要考虑元素的顺序和值的精确匹配。下面我们...
在JavaScript中判断两个字符串是否相等是编程基础中的重要内容,尤其对于初学者来说,理解字符串相等性的判断方法对于编写有效的代码至关重要。首先,要了解JavaScript提供了两种相等性运算符:“==”和“===”。这...
Labview-比较两个字符串,显示相同字符个数
在处理字符串数组时,可以使用`Arrays`类提供的方法,如`sort()`进行排序,`toString()`转换为字符串形式,以及`equals()`比较两个数组是否相等。在上述示例代码中,展示了如何使用`compareTo()`对字符串数组进行...
`nil`和`NSNull`也是判断字符串是否为空时需要注意的特殊情况。在Objective-C中,`nil`表示对象不存在,而`NSNull`则常用于表示“无值”或“空值”。对于`nil`字符串,`length`方法会返回0,而`isEqualToString:`会...
首先,判断两个数组是否相同,最简单直接的方式是对两个数组进行排序,然后转换成字符串进行比较。例如使用`JSON.stringify()`方法将数组转换为字符串后进行比较。若两个数组内容相同且排序后一致,它们的字符串表示...
` 比较两个数组是否相等。 #### 实验内容分析 实验中的任务涉及了对字符串合法性的检查,以及顾客消费管理系统的实现,涵盖了上述所有知识点的应用。例如,在检查Java文件名和邮箱格式时,利用了`String`类的`...
遍历结束后,根据`bol`的值来判断两个数组是否内容相同。 ```objc if (newArr.count == oldArr.count) { bol = true; for (int16_t i = 0; i ; i++) { id c1 = [oldArr objectAtIndex:i]; id newc = [newArr ...
- 使用`equals()`方法比较两个字符串是否相等,例如,`if (str1.equals(str2))`。 3. **字符串的拼接**: - 使用加号(`+`)或`concat()`方法连接两个字符串,例如,`String result = str1 + str2;` 或 `String ...
在Java编程中,判断两个数组是否相等是一个常见的任务,特别是在进行数据比较或者算法实现时。这个"Java实例 - 判断数组是否相等源代码-详细设计教程"应该包含了一系列的示例代码,用于教授如何在Java中有效地比较...
判断两个数组的关系 共有四种1 1是2的前缀 2是1的前缀 相等 不相等
在JavaScript中,比较两个数组的内容是否相同并非像比较基本类型那样简单,因为数组是对象,而`==`和`===`操作符在比较对象时,只会检查它们是否指向同一个内存地址,即比较的是引用,而不是内容。因此,直接使用`==...
* Strempty(S):判断字符串S是否为空串。 * Strclear(S):清除字符串S的内容。 * Strcompare(S1, S2):比较字符串S1和S2的大小。 * Strconcat(S1, S2):连接字符串S1和S2。 * Substring(S, i, len):从字符串S中提取...
例如,字符串类可能有一个构造函数用于初始化字符串,一个`length()`方法返回字符串的长度,`equals()`方法用于判断字符串是否相等,以及`substring()`方法用于提取子串。 此外,对于大量稀疏数据的处理,我们会...
- **相等性比较**:`isequal` 或 `strcmp` 可以比较两个字符串是否相同。 - **顺序比较**:`strcmpi` 对大小写不敏感,`strlessthan`、`strgreaterthan` 等用于比较字符串的顺序。 6. **数组操作**: - **索引...
### 使用C++比较两个字符串的大小 在C++编程语言中,比较字符串是常见的操作之一。本篇文章将基于提供的代码示例,详细解释如何通过指针和`for`循环来比较两个字符串的大小。 #### 代码解读 首先,让我们详细了解...
`Equals()`方法用于比较两个字符串是否相等,这里默认采用的是全等比较,即内容和大小写完全相同才认为相等。 #### 4. 布尔标志变量的使用 为了跟踪数组中是否找到重复元素,代码中使用了一个布尔变量`flag`,初始...