streamset数据合并_java8新特性-Stream操作集合中的数据1.类型转换
(1)其他类型转换成Stream对象
public class App {
public static void main(String[] args) {
//1.批量数据 --> Stream对象
//多个数据
Stream stream1 = Stream.of("admin", "tom", "mike");
//数组
String[] array = new String[]{"xuexi", "biyao"};
Stream stream2 = Arrays.stream(array);
//列表
List list = new ArrayList<>();
list.add("wudang");
list.add("emei");
list.add("mingjiao");
Stream stream3 = list.stream();
//集合
Set set = new HashSet<>();
set.add("shaolin");
set.add("kongtong");
Stream stream4 = set.stream();
//map
Map map = new HashMap<>();
map.put("张三", 11);
map.put("李四", 15);
map.put("王五", 16);
Stream stream5 = Set().stream();
//2.Stream对象对于基本数据类型的功能封装
// int/long/double
IntStream.of(new int[]{10, 20, 30}).forEach(System.out::println);
IntStream.range(1, 5).forEach(System.out::println);
IntStream.rangeClosed(1, 5).forEach(System.out::println);
}
}
(2)Stream对象转换成其他对象
//3.Stream转换成指定数据对象
//数组
Object[] object = Array(String[]::new);
//字符串
String s = llect(Collectors.joining()).toString();
System.out.println(s);
//列表
List strings = (List) List());
System.out.println(strings);
/
/集合
Set set1 = (Set) Set());
System.out.println(set1);
//map
Map map1 = (Map) Map(x -> x, y -> y));
System.out.println(map1);
2.Stream对象常见API操作
//4.Stream中常见的API操作
List accountList = new ArrayList<>();
accountList.add("songjiang");
accountList.add("wuyong");
accountList.add("lujunyi");
accountList.add("linchong");
//map()中间操作,map()⽅法接收⼀个Function接⼝
accountList = accountList.stream().map(x -> "梁⼭好汉:" + x).List()); //添加过滤条件,过滤符合条件的⽤户 filter()
accountList = accountList.stream().filter(x -> x.length() > 7).List()); // forEach 增强型循环
accountList.forEach(x -> System.out.println("forEach:" + x));
// peek() 迭代数据完成数据的依次处理过程
accountList.stream().peek(x -> System.out.println("peek 1:" + x))
.peek(x -> System.out.println("peek 2 :" + x)).forEach(System.out::println); accountList.forEach(System.out::println);
/
/Stream中对于数字的操作
List intList = new ArrayList<>();
intList.add(20);
intList.add(14);
intList.add(11);
intList.add(12);
intList.add(10);
intList.add(18);
intList.add(19);
intList.add(12);
//skip()中间操作,有状态,跳过部分数据
intList.stream().skip(3).forEach(System.out::println);
//limit()限制输出的数量
intList.stream().skip(3).limit(3).forEach(System.out::println); System.out.println("-------------------分割线-----------------------");
//distinct() 中间操作,有状态,剔除重复数据
intList.stream().distinct().forEach(System.out::println);
System.out.println("-------------------分割线-----------------------");
//sorted() 中间操作,有状态,排序
//max() 获取最⼤操作
//min() 获取最⼩值
//reduce() 合并处理数据
Optional optional = intList.stream().max((x, y) -> x - y);
java stream
System.out.());
Optional optional1 = intList.stream().reduce((sum, x) -> sum + x); System.out.());
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论