获取流对象

获取单列集合,双列集合,数组的流对象

单列集合获取流对象:

1、java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此方式获取流。

public class StreamTest01 {

List list = new ArrayList<>();

Stream stream1 = list.stream();

Set set = new HashSet<>();

Stream stream2 = set.stream();

}

双列集合获取流对象

2、java.util.Map接口想要获取流,先通过keySet()、values()或entrySet()方法获取键、值或键值对的单列集合,再通过stream()获取流对象。

public class StreamTest01 {

Map map = new HashMap<>();

Stream keyStream = map.keySet().stream();

Stream valueStream = map.values().stream();

Stream>entryStream = map.entrySet().stream();

}

数组获取流对象

数组获取流,使用Stream接口中的的静态方法of(T...values)获取流

public class StreamTest01 {

String[] array = {"东邪", "西毒", "南帝", "北丐", "中神通"};

Stream stream = Stream.of(array);

}

filter过滤,结果收集(数组)

/**

* 需求

* 过滤:filter、结果收集(数组)

* 问题:

* 有如下7个元素黄药师,冯蘅,郭靖,黄蓉,郭芙,郭襄,郭破虏,使用Stream将以郭字开头的元素存入新数组

*/

public class StremFilterTest_Array {

public static void main(String[] args) {

Stream stream = Stream.of("黄药师", "冯蘅", "郭靖", "黄蓉", "郭芙", "郭襄", "郭破虏");

//使用Stream将以郭字开头的元素存入新数组

String[] gous = stream.filter(t -> t.startsWith("郭")).toArray(String[]::new);

System.out.println(gous[0]);

}

}

取用前几个:limit、跳过前几个:skip、 forEach: 循环消费

/**

* 需求:

* 已知ArrayList集合中有如下元素{陈玄风、梅超风、陆乘风、曲灵风、武眠风、冯默风、罗玉风},使用Stream

* 1、取出前2个元素并在控制台打印输出。

* 2、取出后2个元素并在控制台打印输出

*/

public class Limit_Skip {

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("陈玄风");

list.add("梅超风");

list.add("陆乘风");

list.add("曲灵风");

list.add("武眠风");

list.add("冯默风");

list.add("罗玉风");

list.stream().limit(2).forEach(System.out::println);

list.stream().skip(list.size() - 2).forEach(System.out::println);

}

}

映射:map、 逐一消费:forEach

/**

* 需求:

* 有如下整数1,-2,-3,4,-5

* 使用Stream取元素绝对值并打印

*/

public class Map_ForEach {

public static void main(String[] args) {

Stream stream = Stream.of(1, -2, -3, 4,-5);

stream.map(Math::abs).forEach(System.out::println);

}

}

组合:concat、 结果收集(list)

/**

* 需求:

* 已知数组arr1中有如下元素{郭靖,杨康},arr2中有如下元素{黄蓉,穆念慈},使用Stream将二者合并到List集合

*/

public class Concat_List {

public static void main(String[] args) {

Stream streamA = Stream.of("郭靖", "杨康");

Stream streamB = Stream.of("黄蓉", "穆念慈");

List strList = Stream.concat(streamA, streamB).collect(Collectors.toList());

}

}

获取并发流

parallelSteam: 是一个并行流,多管道流

Stram:是一个单管道的流

二者区别:parallelSteam的处理效率比Stram的高

public class ParallelStream {

public static void main(String[] args) {

Collection coll = new ArrayList<>();

Stream parallelStream1 = coll.parallelStream();

Stream parallelStream2 = Stream.of(100, 200, 300, 400).parallel();

}

}

java 中遍历双列集合_获取单列集合,双列集合,数组的Stream流对象以及简单操作...相关推荐

  1. datatable中某一列最小值_获取DataTable 某一列所有值

    //获取某一列值 string orderids = (from d in dt.AsEnumerable() select d.Field("OrderID")).ToList( ...

  2. java中遍历实体类,获取属性名和属性值

    方式一(实体类): //java中遍历实体类,获取属性名和属性值public static void testReflect(Object model) throws Exception{for (F ...

  3. Java中遍历Set集合的三种方法

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  4. Java中遍历Map集合的5种方式总结

    这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 方式一 通过Map.keySet使用iterator遍历 ...

  5. Java中遍历Set集合的三种方法(实例代码)

    哈喽,欢迎来到小朱课堂,下面开始你的学习吧! Java中遍历Set集合的三种方法 废话不多说,直接上代码 1.迭代遍历: Set set = new HashSet(); Iterator it = ...

  6. Java中遍历数组使用foreach循环还是for循环?

    这篇文章主要介绍了Java中遍历数组使用foreach循环还是for循环?本文着重讲解for语句的语法并给出使用实例,同时总结出尽量使用foreach语句遍历数组,需要的朋友可以参考下 从JDK1.5 ...

  7. java中遍历一个对象的所有属性

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文转载 ...

  8. java中遍历HashMap的四种方法及效率比较

    1. 推荐方法: 使用entrySet 遍历Map 类集合KV,而不是keySet 方式进行遍历. 代码示例如下: // 循环第二种HashMap<Integer, String> map ...

  9. android 遍历实体类,Java中遍历实体类(处理MongoDB)

    在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...

最新文章

  1. 据说这是中途接手别人项目时的场景
  2. cocos2d_x 常用函数解析
  3. Ubuntu16.04能识别U盘,但无法识别光盘
  4. 关于java中Scanner的next和nextLine
  5. 宾馆管理系统mysql_宾馆管理系统(含源码和数据库文件)
  6. 游泳,情人节纪念一下。
  7. 用正则彻底去除HTML\CSS\script代码
  8. VC++软件授权加密与管控(附demo)
  9. 批发表情包,掏出了python 3分钟爬取表情包素材,分享给你
  10. 使用Apifox测试套件自动化测试接口
  11. 用计算机画对称图形,CAD画对称图形快捷键
  12. 图像特征与描述(2)
  13. 电脑开机显示无法自动修复计算机,电脑开机提示自动修复怎么办?
  14. vim 常用命令 挺全的
  15. 计算机网络(三)—— 数据链路层(8、9):集线器与交换机的区别、以太网交换机自学习和转发帧的流程
  16. VUE基础用法(四)
  17. 【专题5: 硬件设计】 之 【39.案例三:碎纸机,光电传感器电路原理图】
  18. java8中switch不能,switch 语句
  19. C++编写x的n次方
  20. Legacy octal literals are not allowed in strict mode

热门文章

  1. PKI常见证书格式和转换
  2. 专利电子申请网登录成功是空白页面,对外服务页面空白,点击登录账号密码就被清空
  3. C 语言的起源与发展
  4. 综合布线系统---常见机柜尺寸
  5. 1966年图灵奖--艾伦·佩利生平
  6. Vite知识体系简述
  7. VMware磁盘扩容
  8. 闹钟小程序(C#源码)
  9. 2018 BMCV 《BAM: Bottleneck Attention Module》Pytorch实现
  10. java实现物理仿真平台介绍,物理仿真实验室