当前位置: 首页 > 知识库问答 >
问题:

如何执行两个列表的并集?

微生俊捷
2023-03-14

我有两个数组列表ar1和ar2。

ArrayList ar1包含一个对象列表,每个对象都具有属性ID、名称和状态<代码>数组列表ar2包含一个对象列表,每个对象都具有属性ID、名称和主题。ar1和ar2的大小相同。

有什么方法可以将这两个列表合并到一个新的列表ar3中,其中包含一个对象列表,每个对象都具有属性ID、名称、状态和主题?

更新:两个列表中的ID和名称相同。

共有3个答案

易成双
2023-03-14

如果我理解正确的话,你有一个相同大小的a和B的列表,你想要一个C的列表,其中第n个元素是列表a的第n个元素和列表B的第n个元素的并集。

首先,您需要定义联合类:

class C {
    Integer id;
    String name;
    String status;
    String subject;

    C(A a, B b) {
        this.id = a.id;
        this.name = a.name;
        this.status = a.status;
        this.subject = b.subject;
    }
}

然后,您可以使用迭代器:

Iterator<A> aIterator = aList.iterator();
Iterator<B> bIterator = bList.iterator();
List<C> cList = new ArrayList(aList.size());
while (aIterator.hasNext() && bIterator.hasNext()) {
    A a = aIterator.next();
    B b = bIterator.next();
    cList.add(new C(a, b));
}
叶举
2023-03-14
Map<String, Target> map = new HashMap<>();

for (TypeWithStatus item : typesWithStatus) {
   map.put(item.getId()+item.getName(), createTypeWithStatusAndSubject(item));
}

for (TypeWithSubject item : typesWithSubject) {
   map.get(item.getId()+item.getName()).setSubject(item.getSubject());
}

这个想法是将第一个列表中的所有元素存储在地图中,并在第二次运行中更新地图值。只有当两个列表在id名称方面包含“相同”的项目时,这才有效。如果没有,您将不得不添加空检查。

裴心思
2023-03-14
public static void main(String[] args) throws Exception {

    List<String> list1 = new ArrayList<String>(Arrays.asList("A", "B", "C"));
    List<String> list2 = new ArrayList<String>(Arrays.asList("B", "C", "D",
            "E", "F"));
    List<String> result = new ArrayList<String>();
    result = union(list1, list2);

    System.out.println(result);
}

public static List<String> union(List<String> list1, List<String> list2) {
    HashSet<String> set = new HashSet<String>();

    set.addAll(list1);
    set.addAll(list2);

    return new ArrayList<String>(set);
}

输出:

[D, E, F, A, B, C]
 类似资料:
  • 我有一个LegacyAcCountDto,我需要从两个不同的来源建立一个列表。一个是本地JPA存储库,另一个是Web服务调用。Web服务版本具有JPA数据源不可用的帐户状态。我需要并行执行两个调用,当它们都完成时,我需要找到Web服务列表的legacyId,并用从Web服务中提取的帐户状态填充列表。整个想法是返回一个包含完整DTO的列表。我不需要把它保存回网络服务或JPA回购 DTO: merge

  • 问题内容: 在Python中有两个可迭代的对象,我想成对地讨论它们: 导致: 一种方法是遍历索引: 问题答案: Python 3 当或的较短者停止时,停止。 在Python 3 中,像在Python2中一样,返回元组的迭代器。要获取元组列表,请使用。要压缩直到两个迭代器都用尽,可以使用 。 Python 2 在Python 2中, 返回一个元组列表。当且不是很大时,这很好。如果它们都是大量的,则形

  • 问题内容: 我有 我想要 问题答案:

  • rank ▲ ✰ vote url 65 357 50 683 url 合并两个列表 怎样合并两个列表? 例如: listone = [1,2,3] listtwo = [4,5,6] 我期待: mergedlist == [1, 2, 3, 4, 5, 6] 在Python中非常容易. mergedlist = listone + listtwo

  • 如何拆分列表并并行执行 我的场景-- 我从webservices获得了1000辆使用下面列表的车辆。 我想在每个列表中分割100辆车并并行执行所有列表。 谢谢

  • 问题内容: 如何合并结构相同的两个MySQL表? 这两个表的主键将发生冲突,因此我考虑了这一点。 问题答案: 您也可以尝试: 这允许table_1中的行取代table_2中具有匹配主键的行,同时仍插入具有新主键的行。 或者, 将使用来自表_2的相应行更新表_1中已经存在的行,同时插入具有新主键的行。