gpt4 book ai didi

java - 如何比较两个数组列表并提取第三个数组列表中两个数组中不常见的元素

转载 作者:行者123 更新时间:2023-11-30 01:47:58 29 4
gpt4 key购买 nike

我有两个数组列表,其中有一些元素,我正在比较两个数组列表的元素,并尝试提取第三个数组列表中在两个列表中都不常见的元素。

这是我到目前为止所做的:

public class Details
{
public static void main(String [] args)
{

ArrayList<String> al1= new ArrayList<String>();
al1.add("hi");
al1.add("How are you");
al1.add("Good Morning");
al1.add("bye");
al1.add("Good night");

ArrayList<String> al2= new ArrayList<String>();
al2.add("Howdy");
al2.add("Good Evening");
al2.add("bye");
al2.add("Good night");

//Storing the comparison output in ArrayList<String>
ArrayList<String> al3= new ArrayList<String>();
for (String temp : al1)
al3.add(al2.contains(temp) ? "Yes" : "No");
System.out.println(al3);

}
}

输出

[No, No, No, Yes, Yes]

我不希望以是或否形式输出,我希望新数组列表中的元素在两个列表中都不常见。

有人请告诉我如何才能达到预期的结果。任何帮助将不胜感激。

谢谢

最佳答案

首先,请编程到List接口(interface)(而不是ArrayList具体类型)。您还可以使用 Arrays.asList 来缩短初始化时间。然后我会 stream() 每个 List - 您希望过滤流以查找其他 List 中未包含的元素,然后将它们添加到您的列表中第三个列表。比如,

List<String> al1 = Arrays.asList("hi", "How are you", "Good Morning", "bye", "Good night");
List<String> al2 = Arrays.asList("Howdy", "Good Evening", "bye", "Good night");
List<String> al3 = al1.stream().filter(s -> !al2.contains(s)).collect(Collectors.toList());
al3.addAll(al2.stream().filter(s -> !al1.contains(s)).collect(Collectors.toList()));
System.out.println(al3);

哪些输出

[hi, How are you, Good Morning, Howdy, Good Evening]

,没有流(这样您可以更好地理解算法),

List<String> al3 = new ArrayList<>();
for (String s : al1) {
if (!al2.contains(s)) {
al3.add(s);
}
}
for (String s : al2) {
if (!al1.contains(s)) {
al3.add(s);
}
}
System.out.println(al3);

关于java - 如何比较两个数组列表并提取第三个数组列表中两个数组中不常见的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238283/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com