Java8-Map
1、Staff实体
public class Staff {
private String name;
private int age;
private String address;
public Staff() {
}
public Staff(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Staff{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
2、将字符串列表转换为大写
public class TextJava8Map1 {
public static void main(String[] args) {
List<String> alpha = Arrays.asList("a", "b", "c", "d");
// 在Java8之前
List<String> alphaUpper = new ArrayList<>();
for (String s :alpha) {
alphaUpper.add(s.toUpperCase());
}
System.out.println(alpha);
System.out.println(alphaUpper);
// Java8 map
List<String> collect1 = alpha.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(collect1);
}
}
3、获取List对象列表中某个属性的集合(Developer在博客-Java8比较器)
public class TextJava8Map2 {
public static void main(String[] args) {
List<Developer> developers = Arrays.asList(
new Developer("java", new BigDecimal(23231), 32),
new Developer("c++", new BigDecimal(32432), 30),
new Developer("spring", new BigDecimal(23121), 34)
);
// 在Java8之前
List<String> names1 = new ArrayList<>();
for (Developer developer : developers) {
names1.add(developer.getName());
}
System.out.println(names1);
// Java8 map
List<String> names2 = developers.stream()
.map(developer -> developer.getName())
.collect(Collectors.toList());
System.out.println(names2);
}
}
4、将一个List对象列表转换为另一个List对象列表
public class TextJava8Map3 {
public static void main(String[] args) {
List<Developer> developers = Arrays.asList(
new Developer("java", new BigDecimal(23231), 32),
new Developer("c++", new BigDecimal(32432), 30),
new Developer("spring", new BigDecimal(23121), 34)
);
// 在Java8之前
List<Staff> staffs = convertToStaff(developers);
System.out.println(staffs);
// Java8 map
List<Staff> result = developers.stream()
.map(developer -> {
Staff staff = new Staff();
staff.setName(developer.getName());
staff.setAge(developer.getAge());
if ("c++".equals(developer.getName())) {
staff.setAddress("us");
}
return staff;
})
.collect(Collectors.toList());
System.out.println(result);
}
private static List<Staff> convertToStaff(List<Developer> developers) {
List<Staff> staffs = new ArrayList<>();
for (Developer developer :developers) {
Staff staff = new Staff();
staff.setName(developer.getName());
staff.setAge(developer.getAge());
if ("java".equals(developer.getName())) {
staff.setAddress("us");
}
staffs.add(staff);
}
return staffs;
}
}
Java8-Map的更多相关文章
- Java8 Map的遍历方式
在这篇文章中,我将对Map的遍历方式做一个对比和总结,将分别从JAVA8之前和JAVA8做一个遍历方式的对比,亲测可行. public class LambdaMap { private Map< ...
- java代码之美(10)---Java8 Map中的computeIfAbsent方法
Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁. ...
- java代码(10) ---Java8 Map中的computeIfAbsent方法
Map中的computeIfAbsent方法 一.案例说明 1.概述 在JAVA8的Map接口中,增加了一个computeIfAbsent,此方法签名如下: public V computeIfAbs ...
- Java8 Map computeIfAbsent方法说明
// 方法定义 default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) { . ...
- Java8 Map中新增的方法使用总结
前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, ...
- Java8 map和reduce
map final List<Integer> numbers = Arrays.asList(1, 2, 3, 4); final List<Integer> doubleN ...
- java8 map flatmap
map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素.这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和ma ...
- Java8 map value排序
/** * Map value降序排序 * @param map * @param <K> * @param <V> * @return LinkedHashMap */ pu ...
- 2017年3月16工作日志【mysql更改字段参数、java8 map()调用方法示例】
修改某个表的字段类型及指定为空或非空 >alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空],变更字段名称及属性 >alter table 表名称 ...
- Java8中Map的遍历方式总结
在这篇文章中,我将对Map的遍历方式做一个对比和总结,将分别从JAVA8之前和JAVA8做一个遍历方式的对比,亲测可行. public class LambdaMap { private Map< ...
随机推荐
- 5、faker.js数据模拟
转载于:https://segmentfault.com/a/1190000008574028 今天发现了一个神器--json-server!在他的帮助下可以在很短的时间内搭建一个Rest API, ...
- Log4j的入门和使用
Log4j(log for java)是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Sy ...
- Nginx 自定义404、500、502 页面
利用nginx的反向代理来实现 服务器404 和500 等状态码的自定义页面 1.nginx配置文件 nginx.conf 配置开启代理错误拦截 和配置页面 下划线部分 http { ...... ...
- 由PHP实现单向链表引发的对象赋值,对象传参,链表操作引发的一系列问题
2019年2月25日14:21:13 测试版本php 5.4 ,5.6,7.0,7.2 代码请看: https://www.cnblogs.com/zx-admin/p/10373866.html 1 ...
- java实现求最大子数组和的逐步显示
package 最大的子数组和; import java.util.Scanner; public class shuzu { public static int maxArr(int a[]) { ...
- KXO151 Programming & Problem Solving
Page 1 of 9KXO151 Programming & Problem SolvingAIEN-SOU - 2019Assignment 2Deadline for Submissio ...
- 一键启动frida server的cmd脚本
和以前写过的在pc直接操作的手机端的sqlite的脚本类似,需要用到重定向的命令 frida-server_helper.bat su /data/local/tmp/frida-server fri ...
- Linux(CentOs 7)系统重装笔记(二)---完全删除用户账号和root用户登录
参考网址:https://jingyan.baidu.com/article/046a7b3ede1c38f9c27fa91b.html 一.完全删除用户 1.查看要删除的用户账号信息 find / ...
- PyQt5之使用Qt下的designer工具将.ui文件转换成.py文件后添加什么东西后方可运行
首先证明我是加了那些鬼东西以后可以成功运行的. 然后来叙述一下我的过程. 这是一个.ui文件生成的.py文件.(把主要的内容省去了,但是没有影响结构) # -*- coding: utf-8 -*- ...
- PHP防CC攻击代码
PHP防CC攻击代码: empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //代理IP直接退出 session_start(); $secon ...