语法
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[])
{
ArrayList<String> firstList=new ArrayList<String>(Arrays.asList("M", "W", "J", "K", "T"));
System.out.println("First arraylist: ");
System.out.println(firstList);
List<String> secondList=new ArrayList<String>(Arrays.asList("M", "W", "E", "K", "T"));
System.out.println("Second arraylist: ");
System.out.println(secondList);
secondList.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
类的
contains()方法。
语法
public boolean contains(Object o)
此方法解析要检查其在列表中是否存在的元素。如果元素匹配,则返回
true ,否则返回
false 。
示例
在此示例中,我们创建了两个
String 类型的ArrayList
firstList 和
secondList 。我们已经使用
contains()方法比较了这些ArrayList。如果firstList的元素与secondList的元素匹配,则返回
是并将此值存储在
thirdList 中。同样,如果元素不匹配,则返回
否。
import java.util.ArrayList;
import java.util.Arrays;
public class ComapreArraylistExample5
{
public static void main(String [] args)
{
ArrayList<String> firstList= new ArrayList<String>(Arrays.asList("Good", "Morning", "Students"));
ArrayList<String> secondList= new ArrayList<String>(Arrays.asList("Good", "Night", "frineds"));
ArrayList<String>thirdList= new ArrayList<String>();
for(String tempList : firstList)
thirdList.add(secondList.contains(tempList) ? "Yes" : "No");
System.out.println(thirdList);
}
}
输出
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 解析为一个参数,并返回一个
boolean 价值。该方法将列表转换为
String 。
contentEquals()方法将String与指定的StringBuffer进行比较。
我们在secondList中添加了另一个元素,以创建两个列表之间的差异,然后再次调用
compareList()方法,该方法返回
false 。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ComapreArraylistExample6
{
//defining method
public static boolean compareList(ArrayList ls1, ArrayList ls2)
{
//converts List into String and checks string are equal or not
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: "+compareList(firstList, secondList));
secondList.add("C++");
System.out.println("When Lists are not same: "+compareList(firstList, secondList));
}
}
输出
When Lists are same: true
When Lists are not same: false
Java流接口
Java
流是一个接口。它属于
java.util 软件包。它提供了
filter()方法来根据给定元素过滤流元素。这是一个
中间过程。
语法
Stream<T> filter(Predicate<? super T> 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);
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]