Java List 的比较

看了Java Doc就能明白它的行为,但还是看到实际的表现更容易让人快速回想起来,所以虽然很简陋,但还是做了备忘录。


import org.apache.commons.collections.ListUtils;

public class Main {
    public static void main(String[] args) {
        List<String> sourceList = Arrays.asList(
            new String[]{"a", "b", "1", "c", "2", "d"});
        List<String> targetList = Arrays.asList(
            new String[]{"1", "2", "3"});

        ListUtils.intersection(sourceList, targetList)
            .stream()
            .forEach(l -> System.out.println("intersection : " + l));

        ListUtils.subtract(sourceList, targetList)
            .stream()
            .forEach(l -> System.out.println("subtract : " + l));

        ListUtils.sum(sourceList, targetList)
            .stream()
            .forEach(l -> System.out.println("sum : " + l));

        ListUtils.union(sourceList, targetList)
            .stream()
            .forEach(l -> System.out.println("union : " + l));

    }
}
List<String> sourceList = Arrays.asList(new String[]{"a", "b", "1", "c", "2", "d"});
List<String> targetList = Arrays.asList(new String[]{"1", "2", "3"});

元リストと対象リストを比較して対象リストにある要素を返す
intersection : 1
intersection : 2

元リストから対象リストを差し引いた要素を返す
subtract : a
subtract : b
subtract : c
subtract : d

2つのリストで重複する要素を Distinct して結合(順番はリストの要素順)
sum : a
sum : b
sum : c
sum : d
sum : 1
sum : 2
sum : 3

2つのリストの順番を維持して結合
union : a
union : b
union : 1
union : c
union : 2
union : d
union : 1
union : 2
union : 3