package com.htf;
import java.util.*;
import java.util.stream.Stream;
/**
* @author htf
* @description: 流式处理
*/
public class Test {
public static void main(String[] args) {
/**
* jdk1.8流处理
*获取stream的方式
*
* 我们在用strema流时,首先是通过:集合.stream()方法获取到了集合流,从而调用java为我们提供Strema接口中的方法,那么我们要想使用stream流,就必须先获取,关于获取stream流的方式则有以下两种。
*
* 一、集合Collection:直接.stream():
*
* 二、集合Map:使用间接方法entrySet、keySet、values,在.stream()方法,注:Map并不是Collection字接口,所以不能像Collection集合那样直接.stream()方式获取
*
* 三、数组:Arrays.stream方法、或者是Stream.of方法
*/
/**
* stream 常用方法
* 1、条件过滤:filter
*
* 2、统计个数:count
*
* 3、截取集合中的前几个元素:limit
*
* 4、抛弃集合中的前几个元素:skip
*
* 5、合并集合:concat
*
* 6、消费集合中的元素:forEach,注:forEach并不是for循环
*/
/**
* 一、集合Collection:直接.stream():
*/
System.out.println("======集合Collection======");
List<String> list=new ArrayList<>();
list.add("蔡徐坤");
list.add("吴亦凡");
list.add("罗志祥");
list.add("吴亦凡1号");
list.add("陈陈");
//1、条件过滤:filter 需要获取list集合字符长度是三且不为空的字符串并且打印
System.out.println("======filter==3====");
list.stream().filter(s -> s!=null && s.length()==3).forEach(System.out::println);
//1、条件过滤:filter 需要获取list集合字符长度是二且不为空的字符串并且打印
System.out.println("======filter==2====");
list.stream().filter(s -> s !=null).filter(s -> s.length()==2).forEach(System.out::println);
//2、统计个数:count
System.out.println("=======count=======");
System.out.println(list.stream().count());
// 3、截取集合中的前几个元素:limit
System.out.println("======limit=======");
list.stream().limit(2).forEach(System.out::println);
// 4、抛弃集合中的前几个元素:skip
System.out.println("======skip=======");
list.stream().skip(2).forEach(System.out::println);
//5、合并集合:concat
System.out.println("======concat=======");
List<String> list1=new ArrayList<>();
list1.add("蔡文姬");
list1.add("曹操");
list1.add("貂蝉");
Stream.concat(list.stream(),list1.stream()).forEach(System.out::println);
/**
* 二、集合Map:使用间接方法entrySet、keySet、values,
* 在.stream()方法,注:Map并不是Collection字接口,
* 所以不能像Collection集合那样直接.stream()方式获取
*/
System.out.println("======集合Map=======");
Map<Integer, String> map=new HashMap<>();
map.put(1, "德玛");
map.put(2, "皇子");
map.put(3, "赵信");
map.put(4, "德玛西亚");
Stream<Integer> streamMap1=map.keySet().stream();
Stream<String> streamMap2=map.values().stream();
Stream<Map.Entry<Integer,String>> mapStream=map.entrySet().stream();
mapStream.forEach(System.out::println);
/**
* 三、数组:Arrays.stream方法、或者是Stream.of方法
*/
System.out.println("======Arrays.stream方法======");
String[] array = {"蛮王","剑圣", "赵信"};
Stream<String> streamArray= Arrays.stream(array);
Stream<String> streamArray1=Stream.of(array);
streamArray1.filter(s -> s !=null).filter(s -> s.length()==2).forEach(System.out::println);
}
}
Java jdk1.8 Stream流式处理
最新推荐文章于 2024-07-20 12:43:53 发布