package com.baifan.collecting;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.SQLOutput;
import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author: baifan
* @date: 2021/2/5
*/
public class CollectingTest {
public static void main(String[] args) throws Exception {
Iterator<Integer> iterator = Stream.iterate(0, n -> n + 1).limit(10).iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Object[] numbers = Stream.iterate(0, n -> n + 1).limit(10).toArray();
System.out.println("Object array:" + numbers);
try {
Integer number = (Integer) numbers[0];
System.out.println("number:" + number);
System.out.println("The following statement throws an exception:");
Integer[] numbers2 = (Integer[]) numbers;
} catch (Exception e) {
System.out.println(e);
}
Integer[] numbers3 = Stream.iterate(0, n -> n + 1).limit(10).toArray(Integer[]::new);
System.out.println("Integer array:" + numbers3);
Set<String> wordset = fileSplitsStream().collect(Collectors.toSet());
show("wordset", wordset);
TreeSet<String> wordsTreeSet = fileSplitsStream().collect(Collectors.toCollection(TreeSet::new));
show("wordsTreeSet", wordsTreeSet);
String jionResult = fileSplitsStream().limit(10).collect(Collectors.joining());
System.out.println("jionResult:" + jionResult);
String jionResult2 = fileSplitsStream().limit(10).collect(Collectors.joining(", "));
System.out.println("Jion with commas:" + jionResult2);
//這個(gè)很強(qiáng)大用來統(tǒng)計(jì)超級(jí)好!!!!
IntSummaryStatistics summary = fileSplitsStream().collect(Collectors.summarizingInt(String::length));
double averageWordLength = summary.getAverage();
double maxWordLength = summary.getMax();
System.out.println("Average word length:" + averageWordLength);
System.out.println("Max word length:" + maxWordLength);
System.out.println("forEach:");
fileSplitsStream().limit(10).forEach(System.out::println);
}
public static Stream<String> fileSplitsStream() throws Exception {
String contents = new String(Files.readAllBytes(Paths.get("D:/sql/java庫(kù).sql")), StandardCharsets.UTF_8);
List<String> wordList = Arrays.asList(contents.split("\\PL+"));
Stream<String> words = wordList.stream();
return words.map(s -> s.replaceAll("\\*", "1"));
}
public static <T> void show(String label, Set<T> set) {
System.out.println(label + ":" + set.getClass().getName());
System.out.println("[" + set.stream().limit(10).map(Objects::toString).collect(Collectors.joining(", ")) + "]");
}
}
Stream流的collect轉(zhuǎn)化到集合
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 前言: 在沒有接觸java8的時(shí)候,我們遍歷一個(gè)集合都是用循環(huán)的方式,從第一條數(shù)據(jù)遍歷到最后一條數(shù)據(jù),現(xiàn)在思考一個(gè)...
- 1. 什么是流 可以看成遍歷數(shù)據(jù)集的高級(jí)迭代器 從支持?jǐn)?shù)據(jù)處理操作的源-->生成的-->元素序列源:提供數(shù)據(jù)的源:...
- Stream API 上篇內(nèi)容我們學(xué)習(xí)了Stream的大部分終端操作,我們這篇著重了解下Stream中重要的終端操...