java8新特性 获取list某一列的操作
提取某一列(以name为例)
//从对象列表中提取一列(以name为例) List<String> nameList = studentList.stream().map(StudentInfo::getName).collect(Collectors.toList()); //提取后输出name nameList.forEach(s-> System.out.println(s));
补充:java8新特性:lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
比如,我有一张表:
entity
Category.java
service
CategoryService.java
需求:
我想获取CategoryService.fiall()查询出来的数据中的,所有category_type的集合
//读取数据
List<Category> categoryList = CategoryService.fiall();
//lambda表达式
List<Integer> categoryTypeList = categoryList.stream().map(e -> e.getCategoryType()).collect(Collectors.toList());
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
java8 forEach结合Lambda表达式遍历 List操作
我就废话不多说了,大家还是直接看代码吧~ @Test void testJava8ForeachMap() { Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); items.put("E&quo
-
JAVA8 List<List<Integer>> list中再装一个list转成一个list操作
我就废话不多说了,大家还是直接看代码吧~ List<Integer> collect = IntStream.range(1, 10).boxed().collect(Collectors.toList()); List<Integer> collect1 = IntStream.range(10, 20).boxed().collect(Collectors.toList()); List<List<Integer>> lists = new ArrayL
-
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
背景 平时在编写前端代码时,习惯使用lodash来编写'野生'的JavaScript; lodash提供来一套完整的API对JS对象(Array,Object,Collection等)进行操作,这其中就包括_.groupBy 和 _.reduce,即分组和'聚合'(reduce不知道该怎么翻译合适). 使用这些'野生'的API能够极大的提高我本人编写JS代码的效率.而JAVA8开始支持stream和lambda表达式,这些和lodash的API有很多类似的功能.因此我在熟悉lodash的前提下尝
-
java8 多个list对象用lambda求差集操作
业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户. 调用接口获取的数据集合 List<AccountVo> list = response.getData().getItems(); 本地查询出来的账户集合 List<Account> towList = accountRepository.findAll(); 筛选差集代码 List<AccountVo> distinctByUniqueList = list
-
Java8使用stream实现list中对象属性的合并(去重并求和)
前言 需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为BillsNums,有id.nums.sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份. 例如说:("s1", 1, 1),("s1",2,3),("s2",4,4), 求和并去重的话,就是("s1", 3, 4),("s2",4,4) 对象与属性 class BillsNums { private
-
Java8 使用 stream().sorted()对List集合进行排序的操作
1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class StudentInfo{ //名称 private String name; //性别 true男 false女 private Boolean gender; //年龄 private Integer age; //身高 private Double height; //出生日期 private
-
java8新特性 获取list某一列的操作
提取某一列(以name为例) //从对象列表中提取一列(以name为例) List<String> nameList = studentList.stream().map(StudentInfo::getName).collect(Collectors.toList()); //提取后输出name nameList.forEach(s-> System.out.println(s)); 补充:java8新特性:lambda表达式:直接获得某个list/array/对象里面的字段集合 ja
-
深入理解Java8新特性之Optional容器类的应用
1.Optional容器类 Optional<T> 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念.并且可以避免空指针异常. 常用方法 : Optional.of(T t) : 创建一个 Optional 实例 Optional.empty() : 创建一个空的 Optional 实例 Optional.ofNullable(T t) : 若 t 不为 null,创建 Opti
-
Java8新特性Stream流实例详解
什么是Stream流? Stream流是数据渠道,用于操作数据源(集合.数组等)所生成的元素序列. Stream的优点:声明性,可复合,可并行.这三个特性使得stream操作更简洁,更灵活,更高效. Stream的操作有两个特点:可以多个操作链接起来运行,内部迭代. Stream可分为并行流与串行流,Stream API 可以声明性地通过 parallel() 与sequential() 在并行流与顺序流之间进行切换.串行流就不必再细说了,并行流主要是为了为了适应目前多核机器的时代,提高系统CP
-
Java8 新特性Lambda表达式实例详解
Java8 新特性Lambda表达式实例详解 在介绍Lambda表达式之前,我们先来看只有单个方法的Interface(通常我们称之为回调接口): public interface OnClickListener { void onClick(View v); } 我们是这样使用它的: button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setText("
-
详解Java8 新特性之日期API
Java 8 在包java.time下包含了一组全新的时间日期API.下面的例子展示了这组新API里最重要的一些部分: 1.Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也可以使用Instant类来表示,Instant类也可以用来创建老的java.util.Date对象. Clock clock = Clock.systemDefaultZone();
-
Java8新特性时间日期库DateTime API及示例详解
Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和SimpleDateFormat等API来处理日期相关操作,这篇文章你一定不要错过.来刷新你的知识库吧! 背景 Java对日期.日历及时间的处理一直以来都饱受诟病,比如java.util.Date和java.util.Calendar类易用性差,不支持时区,非线程安全:还有用于格式化日期的类DateFormat也是非线程安全的等问题. J
-
Java8新特性之空指针异常的克星Optional类的实现
Java8新特性系列我们已经介绍了Stream.Lambda表达式.DateTime日期时间处理,最后以"NullPointerException" 的克星Optional类的讲解来收尾. 背景 作为开发人员每天与NullPointerException斗智斗勇.每接收到参数或调用方法获得值得判断一下是否为null.稍不留意,空指针异常就像幽灵一样出现了. 这篇文章我们来学习Java8是如何通过Optional类来避免空指针异常的. 先来看一下不使用Optional类时,我们为了防止N
-
Java8 新特性之日期时间对象及一些其他特性
日期时间对象 关于日期时间的操作可以分为两种: 转换:与字符串的互相转换,与时间戳的互相转换 计算:计算两个时间点之间的间隔.时间点与时间段的计算(计算下周N.下个月D日.去年M月D日等等) Java8 提供了三个类:LocalDate.LocalTime.LocalDateTime,它们的形式如 2020-01-01.12:30:00.2020-01-01 12:30:00 创建对象 获取类对象的方法非常非常简单 LocalDate now = LocalDate.now(); LocalDa
-
Java8新特性Stream的完全使用指南
什么是Stream Stream是Java 1.8版本开始提供的一个接口,主要提供对数据集合使用流的方式进行操作,流中的元素不可变且只会被消费一次,所有方法都设计成支持链式调用.使用Stream API可以极大生产力,写出高效率.干净.简洁的代码. 如何获得Stream实例 Stream提供了静态构建方法,可以基于不同的参数创建返回Stream实例 使用Collection的子类实例调用stream()或者parallelStream()方法也可以得到Stream实例,两个方法的区别在于后续执行
-
详细分析JAVA8新特性 Base64
BASE64 编码是一种常用的字符编码,在很多地方都会用到.但base64不是安全领域下的加密解密算法.能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在http,mime协议下快速传输数据. JDK里面实现Base64的API 在JDK1.6之前,JDK核心类一直没有Base64的实现类,有人建议用Sun/Oracle JDK里面
随机推荐
- jQuery判断checkbox是否选中的3种方法
- AngularJS1.X学习笔记2-数据绑定详解
- ASP实现文件直接下载的代码
- 金山反病毒20041212_日报
- oracle使用sql语句增加字段示例(sql删除字段语句)
- ASP.NET同步分页MvcPager使用详解
- php二维码生成以及下载实现
- 千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记
- php实现点击可刷新验证码
- 输入密码检测大写是否锁定js实现代码
- Node.js+Express配置入门教程详解
- asp 输出换行的详细说明 原创
- php+mysql开源XNA 聚合程序发布 下载
- shell脚本echo输出不换行功能增强实例
- jQuery实现模仿微博下拉滚动条加载数据效果
- javascript 精粹笔记
- php 修改密码实现代码
- 基于Windows下Apache PHP5.3.1安装教程
- Android Studio多渠道打包、自定义打包APK名称
- python itchat实现调用微信接口的第三方模块方法