java list过滤完赋给自己_Java8对list集合进行排序、过滤、分组、去重、转map、遍历赋值等操作...
importlombok.Data;import java.util.*;importjava.util.stream.Collectors;public classTestMain {//测试集合
private List newsList = new ArrayList<>();public static voidmain(String[] args) {
TestMain testMain= newTestMain();//初始集合
List initList =testMain.newsList;//待赋值集合
List otherList = new ArrayList<>();//单个属性排序,按title字符串排序
List titleSortList =initList.stream().sorted(Comparator.comparing(News::getTitle)).collect(Collectors.toList());//多个属性排序, 按title、author字符串排序 thenComparing可以多个...
List titleAndAuthorSortList =initList.stream().sorted(Comparator.comparing(News::getTitle)
.thenComparing(Comparator.comparing(News::getAuthor)))
.collect(Collectors.toList());//多个属性排序, 按title、hitNum倒序
List titleAndHitsSortList =initList.stream().sorted(Comparator.comparing(News::getTitle)
.thenComparing(Comparator.comparing(News::getHits).reversed()))
.collect(Collectors.toList());//多个属性排序,按title、hot排序降序,hot需转成数字进行排序
List titleAndHotSortList =initList.stream().sorted(Comparator.comparing(News::getTitle)
.thenComparing((v1, v2)->Integer.valueOf(v2.getHot()).compareTo(Integer.valueOf(v1.getHot()))))
.collect(Collectors.toList());//集合过滤,hot大于30的数据
List hotFilterList = initList.stream().filter(news -> news.getHits() > 30).collect(Collectors.toList());//按照title/content字段进行去重
List titleRepeatList =initList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(
()-> new TreeSet<>(Comparator.comparing(o -> o.title +o.content))),
ArrayList::new));//从 List 中取出title属性的组成 新的list 集合
List titleList =initList.stream().map(News::getTitle).collect(Collectors.toList());//List转Map key:title,value:content;使用去重后的集合防止key不唯一
Map titleAndContentMap = titleRepeatList.stream().collect(Collectors.toMap(o -> o.getTitle(), o ->o.getContent()));//单个属性分组,title分组
Map> titleMap =initList.stream().collect(Collectors.groupingBy(News::getTitle));//多个属性分组,title、author分组,groupingBy可以为多个
Map>> titleAndAuthorMap =initList.stream().collect(Collectors.groupingBy(News::getTitle, Collectors.groupingBy(News::getAuthor)));//利用stream().map()处理List,并给另外一个List赋值
otherList = initList.stream().map(news -> {returnnews;}).collect(Collectors.toList());//list遍历
initList.forEach(news ->{
System.out.println(news.getContent());
});//map遍历
titleAndAuthorMap.forEach((k,v) ->{
System.out.println(k);
Map> map =v;
});
}//代码块初始化数据
{int i = 50;while (i > 0) {//1-5随机数
int num = (int) (Math.random() * 5 + 1);//1-50随机数
int hitNum = (int) (Math.random() * 50 + 1);//1-500随机数
int hotNum = (int) (Math.random() * 500 + 1);
News news= newNews();
news.setTitle("title" +num);
news.setAuthor("author" +num);
news.setContent("content" +num);
news.setHits(hitNum);
news.setHot(hotNum+ "");
newsList.add(news);
i--;
}
}/*** 测试内部类*/@DataclassNews {//标题
privateString title;//作者
privateString author;//内容
privateString content;//点击数
private inthits;//热度
privateString hot;
}
}
java list过滤完赋给自己_Java8对list集合进行排序、过滤、分组、去重、转map、遍历赋值等操作...相关推荐
- java stream 8 常用的操作集合 求和 排序 过滤 拿出对象元素组成集合
举个例子拿一个教师给学生开家长会Java实体 解释 stream 流操作集合建立在内存之上非常的快 以下列举 常用的操作方法 @Data public class OpenClass {private ...
- java中集合的排序_Java中集合排序的两种方法
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...
- java对list筛选_java8特性快速对list集合的筛选过滤和计算
java8特性快速对list集合的筛选过滤和计算 一.准备工作 1.创建一个Student对象 package com.shiro.test.java8特性; import java.io.Seria ...
- java.util.list源码_关于fest-util源码包Collections集合工具类过滤、判空、格式化及复制克隆处理...
一.前言 关于fest-util源码包org.fest.util.Collections集合处理类,实现对数组转换List序列集合.集合duplicatesFrom克隆复制.集合判空isEmpty.并 ...
- java sortedlist 固定容量_Java8 使用 stream().sorted()对List集合进行排序的操作
1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class ...
- 用ASP.NET Core 2.1 建立规范的 REST API -- 翻页/排序/过滤等
本文所需的一些预备知识可以看这里: 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 和 用ASP.NET Core 2.0 建立规范的 REST API -- 预 ...
- Java多线程:线程安全和非线程安全的集合对象
转载自 Java多线程:线程安全和非线程安全的集合对象 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到 ...
- jpa 分页 排序 过滤_使用JPA标准@ViewScoped通过分页,过滤和排序进行Primefaces DataTable延迟加载...
jpa 分页 排序 过滤 Primefaces数据表惰性分页有效,但是在Web上使用Criteria搜索完整示例后,我感到非常沮丧. 所以我混合了来自 http://stackoverflow.com ...
- JAVA调用Excel公式和js判断选择计算有效集合
需求: 1.选择某一列结果集,选择当前值和后面某一行的某个值,两个结果做Excel公式运算,之后判断结果集是否符合条件: 2.前面的条件符合,需要再根据一行数据的某几列进行逻辑判断,是否符合条件(不涉 ...
最新文章
- 解决Mask RCNN训练时GPU内存溢出问题
- 二次元老婆生成器,想要什么样的老婆就靠自己勤劳的双手啦
- 实现快速排序的算法_排序算法-快速排序
- 课外扩展:使用RADIUS来集中管理***服务器(2)
- python遍历文件_python遍历目录文件脚本的示例
- c++ || && 逻辑短路问题
- python关闭文件的函数_python打开与关闭文档
- java控制台输出五行字符串_java五行代码导出Excel
- How to Fix Git Push Time Consuming Issue in a Big Team?
- 科比生涯自述:忍受,然后征服——这就是曼巴精神
- GitLab 内置了 CI/CD 工具,强大啊!!
- 计算机如何共享桌面,怎么将自己的台式电脑屏幕与多人共享
- 计算机的语言栏怎么更改,语言栏不见了怎么调出来,笔者教你win7电脑语言栏不见了的解决方法...
- 银行硬件维护维修工单小程序开发制作
- 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数‘main’中: main1.c:(.text+0x9c):对‘pirnt1’未定义的引用 collect2: 错误:ld 返回 1
- 用Filmage Editor制作视频,赢不限时长录屏神器永久序列码!
- mybatis批量更新数据三种方法效率对比
- MySQL 不等于null或空格
- 性能测试工具ab和wrk
- 南邮 ctf web之综合题
热门文章
- Vue全家桶实战03_【从入门到放弃系列】
- eBay实践Hadoop MapReduce 任务的性能翻倍之路
- 大剑无锋之简单说一下聚簇索引和非聚簇索引?【面试推荐】
- spring入门案例plus
- mybatis实现CRUD(不使用DAO)
- leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)
- java并发Exchanger的使用
- 分布式系统优势及衡量指标
- java最小子串覆盖_Java 算法-最小子串覆盖
- git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法