package com.Cx_330.run;
import org.junit.Test;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class CCC {
public static double allNums;
public static void main(String[] args) {
//Collection
List<String> list=new ArrayList<>();
Collections.addAll(list,"张三","李四","张思","阿信","张小三","张思","张思","张三");
list.stream();
//Map
Map<Integer,String> map=new HashMap<>();
Stream<Integer> keystream = map.keySet().stream();
Stream<String> valuestream = map.values().stream();
Stream<Map.Entry<Integer, String>> entrystream = map.entrySet().stream();
//Arrays
String[] str= {"张小三","李四","张哈","张三丰"};
Stream<String> strstream = Arrays.stream(str);
Stream<String> str1 = Stream.of(str);
//中间件
System.out.println("\n---------姓张的--------------------");
list.stream().filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.startsWith("张");
}
}).forEach((s)-> System.out.print(s+" "));
System.out.println("\n---------姓张的两个字--------------------");
list.stream().filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.startsWith("张");
}
}).filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.length()==2;
}
}).forEach((s)-> System.out.print(s+" "));
System.out.println("\n--------姓张的并且两个字且只要第一个---------------");
list.stream()
.filter((s)->s.startsWith("张"))
.filter((s)->s.length()==2)
.limit(1L)
.forEach((s)-> System.out.print(s+" "));
System.out.println("\n--------姓张的并且两个字跳过第一个---------------");
list.stream()
.filter((s)->s.startsWith("张"))
.filter((s)->s.length()==2)
.skip(1L)
.forEach((s)-> System.out.print(s+" "));
System.out.println("\n--------姓张的并且两个字并去除重复---------------");
list.stream()
.filter((s)->s.startsWith("张"))
.filter((s)->s.length()==2)
.distinct()
.forEach((s)-> System.out.print(s+" "));
System.out.println("\n--------合并两个字姓张的以及姓李的并去除重复---------------");
Stream<String> s1 = list.stream()
.filter((s) -> s.startsWith("张"))
.filter((s) -> s.length() == 2)
.distinct();
Stream<String> s2 = list.stream().filter(s -> s.startsWith("李"));
Stream<String> sss = Stream.concat(s1, s2);
sss.forEach(s-> System.out.print(s+" "));
System.out.println("\n--------求姓李的个数---------------");
long len = list.stream().filter(s -> s.startsWith("李")).count();
System.out.println(len);
System.out.println("***********************************");
ArrayList<Double> doubles = new ArrayList<>();
Collections.addAll(doubles,1.0,2.0,3.0,4.0,5.0,6.0,7.0);
//去掉最大值 最小值 求平均数
//上面定义一个allNums当作共享变量 接收总和
//求平均值 先 排升序 在去除 在遍历求和
doubles.stream()
.sorted((d1,d2)->Double.compare(d1,d2))
.skip(1)
.limit(doubles.size()-2)
.forEach(d->allNums+=d);
System.out.println("平均值为: "+allNums/(doubles.size()-2));
System.out.println("\n--------合并两个字姓张的并去除重复并返回到一个List集合---------------");
List<String>stringList=list.stream()
.filter((s) -> s.startsWith("张"))
.filter((s) -> s.length() == 2)
.distinct()
.collect(Collectors.toList());
System.out.println(stringList);
}
}
Stream流创建_操作_收集_案例
最新推荐文章于 2024-10-06 20:16:20 发布
本文展示了如何使用Java Stream API进行数据处理,包括从集合、Map和数组中筛选数据,使用中间操作如filter、limit、skip、distinct等,并进行聚合操作。示例还涉及了对数字列表的平均值计算以及将结果转换为List。
摘要由CSDN通过智能技术生成