gpt4 book ai didi

java - 比较 2 个 ArrayLists 的简单方法

转载 作者:IT老高 更新时间:2023-10-28 20:57:07 26 4
gpt4 key购买 nike

我有 2 个字符串对象的数组列表。

List<String> sourceList = new ArrayList<String>();
List<String> destinationList = new ArrayList<String>();

我有一些逻辑需要处理源列表并最终得到目标列表。目标列表将添加一些附加元素到源列表或从源列表中删除。

我的预期输出是 2 个字符串的 ArrayList,其中第一个列表应从源中删除所有字符串,第二个列表应将所有字符串新添加到源中。

有没有更简单的方法来实现这一点?

最佳答案

将列表转换为 Collection 并使用 removeAll

    Collection<String> listOne = new ArrayList(Arrays.asList("a","b", "c", "d", "e", "f", "g"));
Collection<String> listTwo = new ArrayList(Arrays.asList("a","b", "d", "e", "f", "gg", "h"));


List<String> sourceList = new ArrayList<String>(listOne);
List<String> destinationList = new ArrayList<String>(listTwo);


sourceList.removeAll( listTwo );
destinationList.removeAll( listOne );



System.out.println( sourceList );
System.out.println( destinationList );

输出:

[c, g]
[gg, h]

[编辑]

其他方式(更清晰)

  Collection<String> list = new ArrayList(Arrays.asList("a","b", "c", "d", "e", "f", "g"));

List<String> sourceList = new ArrayList<String>(list);
List<String> destinationList = new ArrayList<String>(list);

list.add("boo");
list.remove("b");

sourceList.removeAll( list );
list.removeAll( destinationList );


System.out.println( sourceList );
System.out.println( list );

输出:

[b]
[boo]

关于java - 比较 2 个 ArrayLists 的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19155283/

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