java的collect⽤法_java8新特性:stream流中collect⽤法java8新特性:stream流中collect⽤法
java8新特性:stream流中collect⽤法
List collectList = Stream.of(1, 2, 3, 4)
.List());
System.out.println("collectList: " + collectList);
// 打印结果
// collectList: [1, 2, 3, 4]
Set collectSet = Stream.of(2, 3, 3, 3)
.Set());
System.out.println("collectSet: " + collectSet);
// 打印结果
// collectSet: [2,3]
3.分组
//按照名字分组
System.out.println("按照名字分组");
System.out.println(
peopleList.stream().upingBy(People::getName))
);
例⼦:(直接看打印语句即可,前⾯很多代码没有看的价值)
People实体类:
package llections;
/**
* @author index
* @date 2020/10/27
**/
public class People {
private int age;
private int gender;
private String name;
public People(int age, int gender, String name) {
this.age = age;
this.name = name;
}
public People(){}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGender() {
return gender;
}
public void setGender(int gender) { der = gender;
}
public String getName() {
return name;
}
public void setName(String name) { this.name = name;
}
@Override
public String toString() {
return "People{" +
"age=" + age +
", gender=" + gender +
", name='" + name + '\'' +
'}';
}
}
测试collect:
package llections; import org.junit.Test;
import java.util.*;
import java.util.stream.Collectors;
/
**
* @author index
* @date 2020/10/27
**/
public class TestcollectingAndThen {
@Test
public void test(){
final int NUM = 14;
List peopleList = new ArrayList<>(NUM);
String[] names = {"⼩张", "⼩龙", "⼩⽜", "⼩猪", "⼩⿊", "⼩红", "⼩⽩"};
for (int i = 0; i < 5; i++) {
/
/添加5个19岁的随机性别和名字的⼩朋友
peopleList.add(new People(19, (int) (Math.random() * 2), names[(int) (Math.random() * names.length)])); }
for (int i = 5; i < 8; i++) {
//添加3个31岁的随机性别和名字的⼩朋友
peopleList.add(new People(31, (int) (Math.random() * 2), names[(int) (Math.random() * names.length)])); }
for (int i = 8; i < NUM; i++) {
//添加6个22岁的随机性别和名字的⼩朋友
peopleList.add(new People(22, (int) (Math.random() * 2), names[(int) (Math.random() * names.length)])); }
//collectingAndThen先对stream⾥的元素进⾏collecting,之后再对结果进⾏操作,
/
/ 下⾯的结果是⼀个map,对map计算元素数⽬
System.out.println("分组数⽬:");
Integer groupCount = peopleList.stream().collect(
System.out.println(groupCount);
System.out.println("-------------------------------------");
//按照名字分组
System.out.println("按照名字分组");
System.out.println(
peopleList.stream().upingBy(People::getName))
);
System.out.println("-------------------------------------");
//按照名字分组(分组的结果是⼀个map),并统计每⼀个分组(map中的每⼀个value)中的元素数⽬
System.out.println("统计每⼀个分组(map中的每⼀个value)中的元素数⽬");
System.out.println(
peopleList.stream().upingBy(People::getName, unting()))
);
System.out.println("-------------------------------------");
//按照名字分组(分组的结果是⼀个map),并取出每⼀组的最⼤值
System.out.println("取出每⼀组的最⼤值");
System.out.println(
peopleList.stream().upingBy(People::getName, Collectors.maxBy(new Comparator() {
@Override
public int compare(People o1, People o2) {
Age() - o2.getAge();
}
})))
);
}
}
输出结果:
java streamjava8新特性:stream流中collect⽤法相关教程
Java8:从永久代PermGen到元空间Metaspace
Java8:从永久代PermGen到元空间Metaspace 众所周知java8的新特性之⼀是完全删除了永久⽣成( PermGen )空间,⾃jdk7发布以来,Oracle就已经宣布了这⼀点。例如,⾃jdk7以来,内部字符串已经从 PermGen 空间中删除。jdk8版本完成了它的退役。本⽂将与⼤家分享
Python中GIL锁
Python中GIL锁 GIL并不是Python的特性,Python完全可以不依赖于GIL。 GIL(Global Interpreter Lock)译为 全局解释器锁 (这⾥的全局包括 多个CPU 下), 并不是 Python独有特性. GIL仅是Python官⽅解释器CPython引⼊的⼀个互斥锁(mutex)概念 (除它之外,还有PyPy
Scala编程开发
Scala编程开发 Scala编程 ⼀、Scala简介 1、Scala特性 2、Scala源⾃Java 3、Scala的优势 ⼆、Scala基础 1、Scala常量与变量 2、Scala数据类型 3、Scala数据类型层次结构 4、字符串插值 三、Scala条件控制 1、条件控制 2、循环控制 3、循环中断 四、Scala数据
Java8新特性四:Stream流
Java8新特性四:Stream流 说到Stream便容易想到I/O Stream,⽽实际上,谁规定“流”就⼀定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引⼊了⼀个全新的Stream概念,⽤于解决已有集合类库既有的弊端。 1.1 引⾔ 传统集合的多步遍历代码⼏乎所
Angular10中的特性模板和根模板(AppModule)
Angular10中的特性模板和根模板(AppModule) 前提是安装了 Angular cli ,以下的⼤部分⽂件创建都是依赖于 cli 提供的指令 Angular 中的特性模板和根模板( AppModule ) 区别在于特性模板可以把应⽤划分,个⼈理解类似于组件化 特性模板创建的指令 ng g module
【HTML CSS】笔记5⽇ 新增特性
【HTML CSS】笔记5⽇ 新增特性 HTML5 的新增特性主要是针对于以前的不⾜,增加了⼀些新的标签、新的表单和新的表单属性等。 这些新的特性都有兼容性问题,基本是IE9+以上版本的浏览器才⽀持,如果不考虑兼容性问题,可以⼤量使⽤这些新特性。 新特性增加了很
jdk9新特性学习(⼀)
jdk9新特性学习(⼀) // jdk8 -- jdk9 jdk9中不再有jre⽂件夹,⽽是将jre中的⽂件放⾄根⽬录中 jdk8中JVM在运⾏时必须要加载rt.jar⽂件,使得java运⾏环境臃肿。 模块化根据不同模块加载程序运⾏需要
的class,本质上是在package外再加⼀层module,通过模块管
反射、特性综合练习
反射、特性综合练习 题⽬: 1: 开发商 程序引⽤开发者dll⽂件,检索可⽤的滤波⽅法,并启动测试; 2: 开发商 提供带有接⼝⽅法的dll ⽂件(SDK)以约束开发者的⾏为; 3: 开发者 提供包含滤波⽅法的dll⽂件; 新建 解决⽅案 ,创建 ⼯程DllPublishFilter ,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。