Table of Contents
ToggleJava Collectors toSet Method
使用所提供的靜態方法轉換成 Set , ToSet Java Collectors 介紹常見的 toSet 等方法,本篇增加了範例,並透過單元測試來驗證產出結果。
public static <T> Collector<T, ?, Set<T>> toSet() {
}
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- collector
| +- CollectorsToSetTest.java
單元測試
Collectors ToSet Java 提供設定鍵與值轉換成 Set 。
toSet
Collectors ToSet Java 建立一個 Stream ,增加五個元素,轉換成 Set 。
@Test
public void toSet() {
int expectedSize = 3;
Stream<String> stream = Stream.of("Blueberry", "Melon", "Fig", "Blueberry", "Melon");
Set<String> result = stream.collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
[Fig, Blueberry, Melon]
toCollection
Collectors ToSet Java 建立一個 Stream ,增加五個元素,轉換成 Set 。
@Test
public void toCollection() {
int expectedSize = 3;
Stream<String> stream = Stream.of("Blueberry", "Melon", "Fig", "Blueberry", "Melon");
Set<String> result = stream.collect(Collectors.toCollection(TreeSet::new));
System.out.println(result);
assertEquals(expectedSize, result.size());
}
[Blueberry, Fig, Melon]
integerToSet
Collectors ToSet Java 建立一個 Stream ,增加五個元素,轉換成 Set 。
@Test
public void integerToSet() {
int expectedSize = 3;
Stream<Integer> stream = Stream.of(1, 2, 3, 1, 2);
Set<Integer> result = stream.collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
[1, 2, 3]
arrayToSet
Java Collectors ToSet 建立一個陣列,增加五個元素,轉換成 Stream ,再轉換成 Set 。
@Test
public void arrayToSet() {
int expectedSize = 3;
int[] array = { 1, 2, 3, 1, 2 };
Stream<int[]> stream = Stream.of(array);
Set<Integer> result = stream.flatMapToInt(Arrays::stream).boxed().collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
[1, 2, 3]
stringToSet
Java Collectors ToSet 建立一個字串, 取得 IntStream ,轉換成 Set 。
@Test
public void stringToSet() {
int expectedSize = 7;
String value = "Blueberry";
IntStream stream = value.chars();
Set<Character> result = stream.mapToObj(e -> (char) e).collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
[B, b, r, u, e, y, l]
CollectorsToSetTest.java
Collectors ToSet Example 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.collector;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.junit.Test;
public class CollectorsToSetTest {
@Test
public void toSet() {
int expectedSize = 3;
Stream<String> stream = Stream.of("Blueberry", "Melon", "Fig", "Blueberry", "Melon");
Set<String> result = stream.collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
@Test
public void toCollection() {
int expectedSize = 3;
Stream<String> stream = Stream.of("Blueberry", "Melon", "Fig", "Blueberry", "Melon");
Set<String> result = stream.collect(Collectors.toCollection(TreeSet::new));
System.out.println(result);
assertEquals(expectedSize, result.size());
}
@Test
public void integerToSet() {
int expectedSize = 3;
Stream<Integer> stream = Stream.of(1, 2, 3, 1, 2);
Set<Integer> result = stream.collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
@Test
public void arrayToSet() {
int expectedSize = 3;
int[] array = { 1, 2, 3, 1, 2 };
Stream<int[]> stream = Stream.of(array);
Set<Integer> result = stream.flatMapToInt(Arrays::stream).boxed().collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
@Test
public void stringToSet() {
int expectedSize = 7;
String value = "Blueberry";
IntStream stream = value.chars();
Set<Character> result = stream.mapToObj(e -> (char) e).collect(Collectors.toSet());
System.out.println(result);
assertEquals(expectedSize, result.size());
}
}
心得分享
Java Collectors ToSet 提供了幾種 Collectors 常見方法的操作範例,在應用上相當廣泛,熟悉 Collectors ToSet Example 這些方法的操作,例如: toSet 等方法,可以讓程式碼更加地簡潔及容易維護。