How do I join two lists in Java?

后端 未结 30 2173
旧巷少年郎
旧巷少年郎 2020-11-22 14:36

Conditions: do not modifiy the original lists; JDK only, no external libraries. Bonus points for a one-liner or a JDK 1.3 version.

Is there a simpler way than:

30条回答
  •  猫巷女王i
    2020-11-22 15:16

    Java 8 version with support for joining by object key:

    public List mergeLists(final List left, final List right, String primaryKey) {
        final Map mergedList = new LinkedHashMap<>();
    
        Stream.concat(left.stream(), right.stream())
            .map(someObject -> new Pair(someObject.getSomeKey(), someObject))
            .forEach(pair-> mergedList.put(pair.getKey(), pair.getValue()));
    
        return new ArrayList<>(mergedList.values());
    }
    

提交回复
热议问题