Java Collectors toSet Method - Java 147

Java Collectors toSet Method – Java 147

Java 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 等方法,可以讓程式碼更加地簡潔及容易維護。

發佈留言