国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java計算集合對稱差的示例代碼

java計算集合對稱差的示例代碼

2020-12-24 13:31xixicat Java教程

本篇文章主要介紹了java計算集合對稱差的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文簡單介紹下計算集合對稱差的幾種方法。

maven

?
1
2
3
4
5
6
7
8
9
10
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>22.0</version>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-collections4</artifactId>
  <version>4.1</version>
</dependency>

對稱差

兩個集合的對稱差是只屬于其中一個集合,而不屬于另一個集合的元素組成的集合。

集合A和B的對稱差通常表示為AΔB,對稱差的符號在有些圖論書籍中也使用符號⊕來表示。例如:集合{1,2,3}和{3,4}的對稱差為{1,2,4}。

guava

在guava里頭是用symmetricDifference方法

java" id="highlighter_797786">
?
1
2
3
4
Set<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4));
Set<Integer> b = new HashSet<>(Arrays.asList(3, 4, 5, 6));
Sets.SetView<Integer> result = Sets.symmetricDifference(a,b);
System.out.println(result);

collection4

在collection4里頭是用disjunction方法

?
1
2
3
4
Set<Integer> a = new HashSet<>(Arrays.asList(1, 2, 5));
Set<Integer> b = new HashSet<>(Arrays.asList(1, 2, 3));
SetUtils.SetView<Integer> result = SetUtils.disjunction(a, b);
assertTrue(result.toSet().contains(5) && result.toSet().contains(3));

改進

上述的兩個方法都不能標注哪些元素屬于第一個集合,哪個屬于第二個集合,有時候我們又想獲取對稱差的時候順便能夠計算出哪個元素屬于哪個集合,這個時候怎么辦呢,可以模仿collection4中的方法來獲取:

?
1
2
3
4
5
6
7
8
9
10
11
12
public static <O> Pair<Collection<O>,Collection<O>> disjunction2(final Collection<? extends O> first,
                                  final Collection<? extends O> second,
                                  final Predicate<O> p) {
    final List<O> firstList = first.stream()
        .filter(e -> p.evaluate(e))
        .collect(Collectors.toList());
 
    final List<O> secondList = second.stream()
        .filter(e -> !firstList.remove(e))
        .collect(Collectors.toList());
    return Pair.of(firstList,secondList);
  }

實例

?
1
2
3
final List<String> first = Arrays.asList("bbb", "ccc","dddd","aaa");
final List<String> second = Arrays.asList("aaa", "zzz", "ccc");
System.out.println(disjunction(first,second,TruePredicate.truePredicate()));

輸出

([bbb, dddd],[zzz])

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000010954970

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲成年人网址 | 国语精品久久 | 一区二区三区影视 | 精品久久久久久久久久久下田 | 久久久www成人免费无遮挡大片 | 国产成人一区 | 精品久久一区二区 | 日韩精品一区二区三区中文在线 | 国产精品免费自拍 | 国产91短视频 | 一区二区三区国产 | 蜜桃一区二区 | 成人涩涩日本国产一区 | 黄色高清视频在线观看 | 黄色四虎| 欧美黄色网视频 | 亚洲成熟少妇视频在线观看 | 久久久午夜爽爽一区二区三区三州 | 国产男女免费视频 | 精品久久久久久久久久久久久久久久久久 | 亚洲一区二区三区精品动漫 | 国产白虎 | 1000部精品久久久久久久久 | 黄色小视频在线免费观看 | 成人在线免费观看小视频 | 久久草在线视频 | 精品少妇一区二区三区在线播放 | a成人| 亚洲五月婷婷 | 久久久久久成人 | 欧洲黄色 级黄色99片 | 欧美在线观看一区二区 | 欧美一级大片免费 | 在线播放视频一区二区 | 亚洲欧美日韩精品久久奇米色影视 | 久色| 黄色a视频 | 午夜av在线| 国产色 | 成人精品网站在线观看 | 日韩国产欧美一区 |