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