1.可变参数

2.不可变集合

3. Steam流

3.1 对象流化

3.2 操作流的方法

3.3 收集方法

1.可变参数

内容是比较简单的,就介绍一下如何使用吧

public static void main(String[] args) {//求N个数的和getSum(1224,667);}public static int getSum(int... allnum){int sum = 0;for (int i = 0; i < allnum.length; i++) {sum+=allnum[i];}System.out.println(sum);return sum;}

2.不可变集合

8版本这边可能没有这些方法。

 //这个集合是不能增删改查的List<String> of = List.of("压缩", "石头人", "概论");//运用场景,省去很多add的操作。ArrayList<String> list = new ArrayList<String>(of);//同理Set 也有但是我java 环境是8版本似乎没有Set.of()方法zulu-8.jdk 这个版本Set<String> nameSet = Set.of("压缩", "石头人");//Map.of Map.ofEntries 我这边也是敲不出来的。这边就不写了Map<String, Integer> scoreMap = Map.of("压缩", 95, "石头人", 100);Map.ofEntries(Map.entry("yasuo",0),Map.entry("shitouren",1),Map.entry("gailun",2));

3. Steam流

在开发中大家都会遇到,筛选集合中符合条件的元素,我们一般都是for循环套if然后在添加到新的集合这么操作。但是流式操作非常方便,无论是装bi还是装bi都很实用。

流的操作大致可以分三步 把对象流化,然后操作流,最后关闭流。当然不是所有对象都可以流化,只有单列集合、双列集合、数组、以及T... array

3.1 对象流化

ArrayList<String> lists = new ArrayList<>(List.of("yasuo","概论","石头人"));//单列获取流Stream<String> stream = lists.stream();//双列集合HashMap<String,Integer> myMap = new HashMap<>();myMap.put("yasuo",24);myMap.put("石头人",78);myMap.keySet().stream();myMap.entrySet().stream();String[] myArray = {"压缩","概论"};Arrays.stream(myArray);Stream.of("yasuo","aixi");

3.2 操作流的方法

这边只是一部分方法。其他的可以自己查了使用。

        ArrayList<String> lists = new ArrayList<>(List.of("yasuo","概论","石头人"));//过滤长度为2的英雄,这边还可以简化lists.stream().filter(s -> {return s.length()!=2;}).forEach(s -> System.out.println(s));//简化版,具体简化规则可以自己差一下,很简单lists.stream().filter(s -> s.length()!=2).forEach(s -> System.out.println(s));//从开始获取几个lists.stream().limit(1).forEach(e->{System.out.println(e);});//跳过几个lists.stream().skip(1).forEach(e->{System.out.println(e);});//两个流合二为一ArrayList<String> lists2 = new ArrayList<>(List.of("yasuo","概论","石头人"));Stream.concat(lists.stream(),lists2.stream()).forEach(e- >System.out.println(e));//去重,如果是对象,去重需要重写equals和hascode方法lists2.stream().distinct();//获取个数lists.stream().count();

3.3 收集方法

分别是List set map

lists.stream().filter(e -> e.startsWith("y")).collect(Collectors.toList()).forEach(e->{System.out.println(e);});lists.stream().filter(e -> e.startsWith("y")).collect(Collectors.toSet()).forEach(e->{System.out.println(e);});Map<String, String> collect = lists.stream().filter(e -> e.length() > 4).collect(Collectors.toMap(s -> s, s -> s));

可变参数和Steam流的基本使用相关推荐

  1. 可变参数和Strem流

    可变参数 可变参数用在方法的形式参数的位置,它可以看做是一个数组,可以接收多个实际参数. public static void main(String[] args){int sum1=getSum( ...

  2. list转map stream_advancedday10可变参数不可变集合及Stream流

    可变参数 可变参数指的是,方法参数的个数可以发生改变.但是其本质是一个数组,在方法把可变参数当做数组来使用就可以了. //可变参数的格式:数据类型...参数名public static void 方法 ...

  3. Java学习笔记18:Java_Map集合_HashMap集合_可变参数_Stream流_多线程_线程同步_生产者消费者

    文章目录 1.Map集合 1.1Map集合概述和特点[理解] 1.2Map集合的基本功能[应用] 1.3Map集合的获取功能[应用] 1.4Map集合的遍历(方式1)[应用] 1.5Map集合的遍历( ...

  4. Steam流-方法引用

    多次循环,繁琐,过滤数组 1.8之后出的Steam流 List<String> list = new ArrayList<>();list.add("张顺" ...

  5. 参数控制c语言代码走向,C语言可变参数完全解读

    本文转自:http://www.cnblogs.com/wangyonghui/archive/2010/07/12/1776068.html 一.是什么 我们学习C语言时最经常使用printf()函 ...

  6. Linux 打印可变参数日志

    实现了传输进去的字符串所在的文档,函数和行数显示功能. 实现了将传入的可变参数打印到日志功能. #include<stdio.h> #include<stdarg.h> #in ...

  7. java中的steam流

      当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个"模型"步骤方案,然后再按照方案去执行它   这张图展示了过滤 映射 跳过 计数等多步 ...

  8. printf 函数使用 可变参数函数实现原理

    一. Printf 和scanf 函数格式 Printf 和 scanf 家族函数都属于可变参数函数(variadic function).这种函数需要固定数量的强制参数,后面是数量可变的可选参数. ...

  9. 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端

    文章目录 前言 介绍 内存 内存布局 栈与调用惯例 堆与内存管理 运行库 入口函数和程序初始化 C/C++运行库 运行库与多线程 C++全局构造与析构 fread 实现 系统调用与API 系统调用介绍 ...

最新文章

  1. 克隆仓库时HTTPS和SSH方式的区别和使用
  2. dp问题 -挑战例题 2017-7-24
  3. 重构,体现一个工程师的基本素养和底蕴(细节篇)
  4. 用友u8年度账文件服务器错误,用友u8erp软件出纳管理模块年度数据结转常见问题...
  5. django-普通的cookie操作
  6. 问题:使用pandas中的DataFrame写入csv文件多出一行unnamed,如何解决呢??
  7. win10开机时不显示锁屏壁纸
  8. 华为网赛存储基础原理自测答案
  9. 2021-09-08因子分解机
  10. 9本R语言书,从入门到进阶都在这了
  11. Python爬取校花网,好看的妹子真多
  12. css 样式面板,CSS样式面板.ppt
  13. 静态网站生成器(开源项目)
  14. 小公司个人技术成长路线思考
  15. 博客推广——提交搜索引擎
  16. 医保支付平台项目建设方案
  17. Microsoft Teams 思维导图的4大好处,你知道怎样创建吗?
  18. Fruit Ripeness论文、代码和数据集汇总
  19. 数据结构进阶 哈希表
  20. 为什么Arduino UNO工作电压是5V,但是需要9V的电源适配器

热门文章

  1. 2017.11.17 Demo-stm8+temperature timeing control
  2. 成功解决ValueError: pos_label=1 is not a valid label: array([‘0‘, ‘1‘], dtype=‘<U1‘)
  3. 上班一个月挣10万,居然全靠它...
  4. Vue报错 component lists rendered with v-for should have explicit keys.
  5. 使用python开发一个剪切视频、音频的小工具(完整案例)
  6. shell中vi的基本操作及Xshell 常用命令
  7. 单片机控制电路的多图纸原理图和层次式设计
  8. 招聘移动全栈工程师(iOS 方向)
  9. 基于MATLAB的模拟信号AM、FM等调制与解调
  10. 安装ale_python_interface报错