本文概述
- Java equals()方法
- Java removeAll()方法(查找缺少的元素)
- Java keepAll()方法(返回两个列表中的公共元素)
- Java ArrayList.contains()方法
- Java contentEquals()方法
- Java Stream接口
- Java equals()方法
- Java removeAll()方法
- Java keepAll()方法
- Java ArrayList.contains()方法
- Java contentEquals()方法
- Java Stream接口
句法
boolean equals(Object o)
此方法接受要与列表进行相等性比较的对象。如果指定的对象等于列表, 则返回true, 否则返回false。
例
在下面的示例中, 我们创建了两个ArrayList firstList和secondList。通过使用equals()方法比较两个列表, 它返回true。我们在secondList中添加了另一个元素, 以在firstList和secondList之间创建差异。现在, 如果执行比较, 则返回false。
import java.util.*;
public class ComapreArraylistExample1{public static void main(String args[]){//first array listArrayList<
String>
firstList=new ArrayList<
String>
();
//adds elements to the arraylistfirstList.add("Apple");
firstList.add("Pears");
firstList.add("Guava");
firstList.add("Mango");
System.out.println(firstList);
//second array listList<
String>
secondList=new ArrayList<
String>
();
//adds elements to the arraylistsecondList.add("Apple");
secondList.add("Pears");
secondList.add("Guava");
secondList.add("Mango");
System.out.println(secondList);
//comparing both listsboolean boolval = firstList.equals(secondList);
//returns true because lists are equalSystem.out.println(boolval);
//adding another element in the second listsecondList.add("Papaya");
//again comparing both listsboolean bool = firstList.equals(secondList);
//returns false because lists are not equal System.out.println(bool);
}}
输出量
[Apple, Pears, Guava, Mango][Apple, Pears, Guava, Mango]truefalse
Java removeAll()方法(查找缺少的元素)ArrayList类的Java removeAll()方法用于从列表中删除指定集合中包含的所有元素。它重写AbstractCollection < E> 类的removeAll()方法。
句法
public boolean removeAll(Collection<
?>
c)
此方法接受Collection作为包含要从此列表中删除的元素的参数。如果此列表由于调用而更改, 则返回true。
例
在下面的示例中, 我们创建了两个ArrayList firstList和secondList。 removeAll()方法删除firstList的所有元素, 因为除了木瓜之外, secondList中也存在相同的元素。因此, 木瓜是firstList中缺少的元素。因此, 它返回木瓜。如果两个列表具有相同的元素, 则该方法返回一个空列表[]。
import java.util.*;
public class ComapreArraylistExample2{public static void main(String args[]){//first arraylistArrayList<
String>
firstList=new ArrayList<
String>
();
//adds elements to the array listfirstList.add("Apple");
firstList.add("Pears");
firstList.add("Guava");
firstList.add("Peach");
//second array listArrayList<
String>
secondList=new ArrayList<
String>
();
//adds elements to the array listsecondList.add("Apple");
secondList.add("Pears");
secondList.add("Papaya");
secondList.add("Peach");
//removes all elements from the first list//returns empty list if all the elements of first list match with elements of second listsecondList.removeAll(firstList);
//prints the element of second list which does not match with the element of the first listSystem.out.println(secondList);
}}
输出量
[Papaya]
让我们看一下removeAll()方法的另一个示例, 该示例从firstList返回不存在的元素为secondList。
例
import java.util.*;
public class ComapreArraylistExample3{public static void main(String args[]){//first array listArrayList<
Integer>
firstList=new ArrayList<
Integer>
(Arrays.asList(12, 4, 67, 90, 34));
System.out.println("First array list: ");
System.out.println(firstList);
//second array listList<
Integer>
secondList=new ArrayList<
Integer>
(Arrays.asList(12, 4, 67, 0, 34));
System.out.println("Second array list: ");
System.out.println(secondList);
//returns the common elements in both listfirstList.removeAll(secondList);
System.out.println("Un-common element of the first list: ");
System.out.println(firstList);
}}
【如何在Java中比较两个ArrayList】输出量
First array list: [12, 4, 67, 90, 34]Second array list: [12, 4, 67, 0, 34]Un-common element of the first list: [90]
Java keepAll()方法(返回两个列表中的公共元素)ArrayList类的Java keepAll()方法仅保留其他列表中包含的列表元素。它重写AbstarctCollection < E> 类的keepAll()方法。
句法
public boolean retainAll(Collection<
?>
c)
此方法接受Collection作为参数, 其中包含要保留在列表中的元素。如果此列表由于调用而更改, 则返回true。
例
在此示例中, 我们通过使用Arrays类的asList()方法创建了两个ArrayList firstList和secondList。 asList()方法返回指定数组的列表视图。
import java.util.*;
public class ComapreArraylistExample4{public static void main(String args[]){//first arraylistArrayList<
String>
firstList=new ArrayList<
String>
(Arrays.asList("M", "W", "J", "K", "T"));
System.out.println("First arraylist: ");
System.out.println(firstList);
//second arraylistList<
String>
secondList=new ArrayList<
String>
(Arrays.asList("M", "W", "E", "K", "T"));
System.out.println("Second arraylist: ");
System.out.println(secondList);
//returns the common elements in both listsecondList.retainAll(firstList);
System.out.println("Common elements in both list: ");
System.out.println(secondList);
}}
输出量
First arraylist: [M, W, J, K, T]Second arraylist: [M, W, E, K, T]Common elements in both list:[M, W, K, T]
Java ArrayList.contains()方法Java ArrayList.contains()方法用于比较不同ArrayList的两个元素。 Java ArrayList.contains()方法将覆盖AbstrarctCollection < E> 类的contains()方法。
句法
public booleancontains(Object o)
此方法解析要检查其在列表中是否存在的元素。如果元素匹配则返回true, 否则返回false。
例
在此示例中, 我们创建了两个String类型的ArrayList firstList和secondList。我们使用contains()方法比较了这些ArrayList。如果firstList的元素与secondList的元素匹配, 则返回Yes, 并将此值存储到thirdList。同样, 如果元素不匹配, 则返回No。
import java.util.ArrayList;
import java.util.Arrays;
public class ComapreArraylistExample5{public static void main(String [] args){//first arraylistArrayList<
String>
firstList= new ArrayList<
String>
(Arrays.asList("Good", "Morning", "Students"));
//second arraylistArrayList<
String>
secondList= new ArrayList<
String>
(Arrays.asList("Good", "Night", "frineds"));
//storing the comparison output in thirdListArrayList<
String>
thirdList= new ArrayList<
String>
();
//iterator using for-each loopfor(String tempList : firstList) //tempList isa variablethirdList.add(secondList.contains(tempList) ? "Yes" : "No");
System.out.println(thirdList);
}}
输出量
[Yes, No, No]
Java contentEquals()方法Java contentEquals()方法将String与StringBuffer进行比较, 并返回一个布尔值。它属于String类。
句法
public boolean contentEquals(StringBuffer sb)
此方法接受StringBuffer作为与String比较的参数。如果String表示与指定的StringBuffer相同的字符序列, 则返回true, 否则返回false。
例
在此示例中, 我们创建了两个String类型的ArrayList firstList和secondList。我们创建了一个静态方法compareList(), 该方法将两个ArrayList ls1和ls2解析为一个参数, 并返回一个布尔值。该方法将列表转换为String。 contentEquals()方法将String与指定的StringBuffer进行比较。
我们在secondList中添加了另一个元素, 以创建两个列表之间的差异, 然后再次调用compareList()方法, 该方法返回false。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ComapreArraylistExample6 {//defining methodpublic static boolean compareList(ArrayList ls1, ArrayList ls2){//converts List into String and checks string are equal or notreturn 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: "+compareList(firstList, secondList));
//adding another element to the secondListsecondList.add("C++");
//output after adding different elementSystem.out.println("When Lists are not same: "+compareList(firstList, secondList));
}}
输出量
When Lists are same: trueWhen Lists are not same: false
Java Stream接口Java Stream是一个接口。它属于java.util包。它提供了filter()方法来根据给定元素过滤流元素。这是一个中间过程。
句法
Stream<
T>
filter(Predicate<
? Super T>
predicate)
此方法接受Predicate(功能接口)作为参数, 并返回新的结果元素流。
collect()方法
在以下示例中使用的另一种方法是Stream接口的collect()方法。
它使用收集器对此流的元素执行可变的归约操作。收集器封装用作收集参数的函数(Supplier, BiConsumer, BiConsumer)。它允许重用收集策略和收集操作的组成。这是一个终端操作。
句法
<
R, A>
R collect(Collector<
? Super T, A, R>
collector)
Collectors.toList()方法
toList()是Collectors类的静态方法。它属于java.util.Stream.Collectors类。
句法
public static <
T>
Collector<
T, ?, List<
T>
>
toList()
其中T是元素的类型。它返回一个收集器, 该收集器以遭遇(无序)顺序将所有输入元素收集到一个列表中。
例
在下面的示例中, 我们创建了两个String类型的ArrayList firstList和secondList。 filter()方法返回两个列表中都存在的公共元素的列表。
import java.util.*;
public class CompareArrayListExample7{ public static void main(String[] args) { ArrayList<
String>
firstList= new ArrayList<
String>
(Arrays.asList("Java", "Python", "Ruby", "Go"));
System.out.println("First List: "+firstList);
ArrayList<
String>
secondList = new ArrayList<
String>
(Arrays.asList("Java", "Python", "Ruby", "Go", "Perl"));
System.out.println("Second List: "+secondList);
// Finds common elements System.out.print("Common elements: " +firstList.stream().filter(secondList::contains).collect(Collectors.toList()));
} }
输出量
First List: [Java, Python, Ruby, Go]Second List: [Java, Python, Ruby, Go, Perl]Common elements: [Java, Python, Ruby, Go]
推荐阅读
- 用Java创建对象的几种方法
- Java中HashSet和HashMap类之间的区别
- HashMap和TreeMap之间的区别
- Array和ArrayList之间的区别
- Java中的ConcurrentModificationException
- Java中的ClassLoader
- 什么是CompletableFuture()
- Java中的ArrayIndexOutOfBoundsException
- 从Oracle数据库检索图像的示例