java - 如何组合两个列表(或两个任何其他类型的集合)

标签 java collections

我有课ViewPartner.java 。该类如下所示

public class ViewPartner {
    private Integer id;
    //GET, SET
    //Other properties
}

我有两个List<ViewPartner> ,比如说lst1lst2我需要通过以下方式组合它们: 如果有ViewPartner与相同的id两者皆 lst1lst2我们将 ViewPartner来自lst1 ,否则来自两个列表。

我正在使用apache commonsgoogle guava ...也许有一些即时方法?

严格使用 List 对我来说并不重要在这里。

最佳答案

您可以创建一个独特项目的列表,如下所示:

Set<ViewPartner> union = new HashSet<ViewPartner>( list1 );
union.addAll( list2 );

Collection(Set) union 现在将拥有两个列表中的唯一项目,因为 Set 不允许重复值。

此外,您还需要在 ViewPartner 类中为成员 id 实现 Object.equals()Object.hashCode() 方法.

关于java - 如何组合两个列表(或两个任何其他类型的集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126969/

相关文章:

c# - 如何为 C# 泛型集合获取一致的 .Count/.Length 属性?

c# - 实现父子类层次结构

excel - VBA-按属性筛选用户定义类的集合/词典的最有效方法

java - 如何按日期对查询结果进行排序(Jpa、Java Collections)

java - 根据 Object 的成员变量从值对 HashMap 进行排序

java - 图集中的TextureRegions应该是2的幂吗?

java - 使用https错误上传文件?

java - 如何在 andengine 中正确销毁和重建场景?

java - manifest.mf 文件是否显示 jar 的版本?

java - 如何使用具有多个参数的分隔符