Java 中比较两个 ArrayList
如何在 Java 中比较两个 ArrayList?
在 Java 环境中,有多种方法可用于比较两个特定的 数组列表。它包含数组列表,因为它们的大小相同,并且应该包含这些特定列表中的相同元素。
在 Java 中比较两个 ArrayList 的不同方法
下面列出了一些方法:
Java equals() 方法
Java removeAll() 方法
Java retainAll() 方法
Java ArrayList.contains() 方法
Java contentEquals() 方法
java.util.ArrayList 方法
对于此过程:
此特定函数具有一个要比较相等性的参数值。
如果数组列表相等,则此过程将返回一个 true 弹出窗口。
示例
以下是一个示例:
Input For The Operation: ArrayList One = [1, 2, 3, 4], ArrayList Two = [1, 2, 3, 4] Output Is Here: Both Array Lists are equal Here Input For The Operation : ArrayList One = [1, 2, 3, 4], ArrayList Two = [4, 2, 3, 1] Output Is Here: Both Array List are not equal Here
比较两个数组列表的算法
在此可能的算法中,我们将向您展示如何使用 Java 环境中提供的各种方法来执行比较两个数组列表的过程。
步骤 1 - 开始该过程。
步骤 2 - 导入并声明 Java 包以运行该方法。
步骤 3 - 声明一个公共类。
步骤 4 - 提及字符串参数。
步骤 5 - 创建并声明两个数组列表。
步骤 6 - 填充数组列表一。
步骤 7 - 填充数组列表二。
步骤 8 - 显示两个数组列表。
步骤 9 - 比较两个数组列表。
步骤 10 - 如果评估结果为真,则打印相等消息。
步骤 11 - 如果评估结果为假,则阻止执行过程并打印不相等文本。
步骤 12 - 在数组列表一中插入另一个元素。
步骤 13 - 显示两个数组列表。
步骤 14 - 再次比较两个数组列表。
步骤 15 - 获取结果。
步骤 16 - 终止该过程。
比较两个数组列表的语法
ArrayList<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
list1.add("C");
list1.add("D");
ArrayList<String> list2 = new ArrayList<String>();
list2.add("E");
list2.add("F");
list2.add("G");
list2.add("H");
System.out.println(list2);
System.out.println(list1.equals(list2));
public class CompareTwoLists {
List<String> listOne = Arrays.asList("b", "c", "a");
List<String> listTwo = Arrays.asList("a", "c", "b");
List<String> listThree = Arrays.asList("c", "a", "b");
Collections.sort(listOne);
Collections.sort(listTwo);
Collections.sort(listThree);
boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);
isEqual = listOne.equals(listThree);
System.out.println(isEqual);
}
List<String> listOfAdditionalItems = listOne.stream()
.filter(item -> !listTwo.contains(item))
.toList();
Assertions.assertTrue(CollectionUtils.isEqualCollection(List.of("c", "d"),
listOfAdditionalItems));
List<String> listOfMissingItems = listTwo.stream()
.filter(item -> !listOne.contains(item))
.toList();
Assertions.assertTrue(CollectionUtils.isEqualCollection(List.of("e", "f"),
listOfMissingItems));
在此可能的语法中,我们尝试向您展示如何声明和创建比较类,以及如何通过使用此方法比较两个特定数组来获得可能的结果。通过遵循这些特定的语法,我们将朝着解决问题陈述的一些可能方法迈进。
遵循的方法
方法 1 - 使用不同的插件参数比较两个 ArrayList 元素的 Java 程序
方法 2 - 使用具有单个参数的 java.util.ArrayList 比较两个数组列表的 Java 程序
方法 1:使用不同的插件参数比较两个 ArrayList 元素
equals() 方法的使用
在此可能的方法中,我们将应用 equals() 方法作为最少接口。它可以比较特定的对象以获取与特定列表相等的值。如果我们可以在列表中找到该特定对象,则此方法返回 true 值。否则,它返回 false 值。
public class CompareTwoArrayLists {
ArrayList<Integer> listOne = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
ArrayList<Integer> listTwo = new ArrayList<>(Arrays.asList(1, 2, 4, 5, 6, 7));
listOne.compareAll(listTwo);
}
示例
//Java program to compare the both list by using the equals() method
import java.util.*;
public class ARBRDDequalmethods{
public static void main(String args[]){
ArrayList<String> firstList=new ArrayList<String>();
firstList.add("LADAKH");
firstList.add("PAHALGHAM");
firstList.add("KARGIL");
firstList.add("GULMARG");
System.out.println(firstList);
List<String> secondList=new ArrayList<String>();
secondList.add("Sonamarg");
secondList.add("Kolkata");
secondList.add("Dhaka");
secondList.add("Mango");
System.out.println(secondList);
boolean boolval = firstList.equals(secondList);
System.out.println(boolval);
secondList.add("Papaya");
boolean bool = firstList.equals(secondList);
System.out.println(bool);
}
}
输出
[LADAKH, PAHALGHAM, KARGIL, GULMARG] [Sonamarg, Kolkata, Dhaka, Mango] false false
removeAll() 方法的使用
在此可能的方法中,我们将对特定数组列表应用 removeAll() 方法以删除该特定列表中的所有元素。该方法覆盖 AbstractCollection<E> 的方法。如果该过程返回 true 符号,则列表将作为调用值的输出而更改。
示例
//Java program to compare the both list by using the removeAll() method
import java.util.*;
public class ARBRDD{
public static void main(String args[]){
ArrayList<String> firstList=new ArrayList<String>();
firstList.add("KOLKATA");
firstList.add("DHAKA");
firstList.add("INDIA");
firstList.add("BANGLADESH");
ArrayList<String> secondList=new ArrayList<String>();
secondList.add("CHICKEN");
secondList.add("BEEF");
secondList.add("PORK");
secondList.add("MUTTON");
secondList.removeAll(firstList);
System.out.println(secondList);
}
}
输出
[CHICKEN, BEEF, PORK, MUTTON]
retainAll() 方法的使用
在此可能的方法中,我们将应用 retainAll() 方法。此方法仅保留也作为公共值存在于另一个列表中的列表的元素。此过程还覆盖 AbstarctCollection<E> 类的值。
示例
//Java program to compare the both list by using the retainAll() method
import java.util.*;
public class ARBRDD{
public static void main(String args[]){
ArrayList<Integer> firstList=new ArrayList<Integer>(Arrays.asList(12, 4, 67, 90, 34));
System.out.println("First array list is here: ");
System.out.println(firstList);
List<Integer> secondList=new ArrayList<Integer>(Arrays.asList(12, 4, 67, 0, 34));
System.out.println("Second array list is here: ");
System.out.println(secondList);
firstList.removeAll(secondList);
System.out.println("Un-common element of the first list: ");
System.out.println(firstList);
}
}
输出
First array list is here: [12, 4, 67, 90, 34] Second array list is here: [12, 4, 67, 0, 34] Un-common element of the first list: [90]
ArrayList.contains() 方法的使用
在此可能的方法中,我们将应用 ArrayList.Contains() 方法,该方法比较两个不同数组列表中存在的元素。如果操作匹配的值,我们将获得 true 值,否则整个方法将返回 false。
示例
//Java program to compare the both list by using the ArrayList.contains() method
import java.util.*;
public class ARBRDD{
public static void main(String args[]){
ArrayList<String> firstList=new ArrayList<String>(Arrays.asList("A", "B", "O", "N", "I"));
System.out.println("First array list is here: ");
System.out.println(firstList);
List<String> secondList=new ArrayList<String>(Arrays.asList("R", "U", "D", "R", "A"));
System.out.println("Second array list is here: ");
System.out.println(secondList);
secondList.retainAll(firstList);
System.out.println("Common elements in both list: ");
System.out.println(secondList);
}
}
输出
First array list is here: [A, B, O, N, I] Second array list is here: [R, U, D, R, A] Common elements in both list: [A]
contentEquals() 方法的使用
在此可能的方法中,我们将应用 contentEquals() 方法。它将字符串类与缓冲区类进行比较。返回属于该特定字符串类的布尔值。
示例
//Java program to compare the both list by using the ArrayList.contains() method
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ARBRDD{
public static boolean compareList(ArrayList ls1, ArrayList ls2){
return ls1.toString().contentEquals(ls2.toString())?true:false;
}
public static void main(String[] args){
ArrayList<String> firstList = new ArrayList<String>(Arrays.asList("Java", "Python", "Ruby", "Go"));
ArrayList<String> secondList = new ArrayList<String>(Arrays.asList("Java", "Python", "Ruby", "Go"));
System.out.println("When Lists are same the same here: "+compareList(firstList, secondList));
secondList.add("C++");
System.out.println("When Lists are not same here in this process: "+compareList(firstList, secondList));
}
}
输出
When Lists are same the same here: true When Lists are not same here in this process: false
方法 2:使用单个参数比较两个数组列表
java.util.ArrayList 方法的使用
在此可能的方法中,我们将应用 java.util.ArrayList 方法。这主要用于比较两个数组列表。两个数组列表的大小和元素数量在这些列表中都应该相等。此过程的时间复杂度为 O(N)。
boolean equals(Object o)
示例
//Java program to compare the two array lists by using java.util.ArrayList which has a single parameter
import java.util.ArrayList;
public class ARBRDD{
public static void main(String[] args){
ArrayList<String> ArrayList1
= new ArrayList<String>();
ArrayList<String> ArrayList2
= new ArrayList<String>();
ArrayList1.add("item 1");
ArrayList1.add("item 2");
ArrayList1.add("item 3");
ArrayList1.add("item 4");
ArrayList2.add("item 1");
ArrayList2.add("item 2");
ArrayList2.add("item 3");
ArrayList2.add("item 4");
System.out.println(" ArrayList1 = " + ArrayList2);
System.out.println(" ArrayList1 = " + ArrayList1);
if (ArrayList1.equals(ArrayList2) == true) {
System.out.println(" Array List are equal");
}
else{
System.out.println(" Array List are not equal");
}
System.out.println(
"\n Lets insert one more item in Array List 1");
ArrayList1.add("item 5");
System.out.println(" ArrayList1 = " + ArrayList1);
System.out.println(" ArrayList = " + ArrayList2);
if (ArrayList1.equals(ArrayList2) == true) {
System.out.println(" Array List are equal");
}
else {
System.out.println(" Array List are not equal");
}
}
}
输出
ArrayList1 = [item 1, item 2, item 3, item 4] ArrayList1 = [item 1, item 2, item 3, item 4] Array List are equal here Lets insert one more item in Array List 1 ArrayList1 = [item 1, item 2, item 3, item 4, item 5] ArrayList = [item 1, item 2, item 3, item 4] Array List are not equal here
结论
要查找两个数组列表中的公共元素,在这些特定相似的数组列表上使用 retain all 方法更为方便。在本文中,我们学习了如何使用 Java 中提供的各种方法来比较两个相似的数组列表。通过使用上述语法和算法,我们开发了一些 Java 代码以有效的方式解决问题陈述。
另请参阅: Java 面试问题及答案
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP