Java 中的输入/输出与流
Alex Liu
Software Development Engineer
使用 streams 进行数据转换
List 到 Set)ArrayList、LinkedList)HashSet、TreeSet)Keys/Values 作为 Streams)(如 HashMap、TreeMap)Arrays.stream())之后示例使用名为 names 的 ArrayList
names: ["Alice", "Bob", "Charlie", "David"]
Set、Collectors 和 Stream 类import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream;// 将之前创建的 `ArrayList` `names` 转为 `Stream` Stream<String> namesStream = names.stream();
[Alice, Bob, Charlie, David]// 使用 `.map()` 将每个元素转为大写
Stream<String> upperCaseNameStream = namesStream.map(
name -> name.toUpperCase())
[ALICE, BOB, CHARLIE, DAVID]// 使用 `.collect()` 与 `Collectors.toSet()` 存储转换后的流数据
upperCaseNameStream.collect(Collectors.toSet())
{CHARLIE, ALICE, BOB, DAVID}
.reduce() 方法
使用 .reduce() 需要两个输入
0(x, y) -> x + y 表示:x:当前累计值y:当前处理的元素y 加到 x,直到处理完所有元素ArrayList names 转为 Stream 对象Stream<String> stream = names.stream();
.map() 将姓名转为长度,并用 .reduce() 求和stream
.map(name -> name.length())
.reduce(0, (sum, length) -> sum + length);
20Java 中的输入/输出与流