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、遍历赋值等操作...相关推荐

  1. java stream 8 常用的操作集合 求和 排序 过滤 拿出对象元素组成集合

    举个例子拿一个教师给学生开家长会Java实体 解释 stream 流操作集合建立在内存之上非常的快 以下列举 常用的操作方法 @Data public class OpenClass {private ...

  2. java中集合的排序_Java中集合排序的两种方法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  3. java对list筛选_java8特性快速对list集合的筛选过滤和计算

    java8特性快速对list集合的筛选过滤和计算 一.准备工作 1.创建一个Student对象 package com.shiro.test.java8特性; import java.io.Seria ...

  4. java.util.list源码_关于fest-util源码包Collections集合工具类过滤、判空、格式化及复制克隆处理...

    一.前言 关于fest-util源码包org.fest.util.Collections集合处理类,实现对数组转换List序列集合.集合duplicatesFrom克隆复制.集合判空isEmpty.并 ...

  5. java sortedlist 固定容量_Java8 使用 stream().sorted()对List集合进行排序的操作

    1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class ...

  6. 用ASP.NET Core 2.1 建立规范的 REST API -- 翻页/排序/过滤等

    本文所需的一些预备知识可以看这里:  用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 和  用ASP.NET Core 2.0 建立规范的 REST API -- 预 ...

  7. Java多线程:线程安全和非线程安全的集合对象

    转载自  Java多线程:线程安全和非线程安全的集合对象 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到 ...

  8. jpa 分页 排序 过滤_使用JPA标准@ViewScoped通过分页,过滤和排序进行Primefaces DataTable延迟加载...

    jpa 分页 排序 过滤 Primefaces数据表惰性分页有效,但是在Web上使用Criteria搜索完整示例后,我感到非常沮丧. 所以我混合了来自 http://stackoverflow.com ...

  9. JAVA调用Excel公式和js判断选择计算有效集合

    需求: 1.选择某一列结果集,选择当前值和后面某一行的某个值,两个结果做Excel公式运算,之后判断结果集是否符合条件: 2.前面的条件符合,需要再根据一行数据的某几列进行逻辑判断,是否符合条件(不涉 ...

最新文章

  1. 解决Mask RCNN训练时GPU内存溢出问题
  2. 二次元老婆生成器,想要什么样的老婆就靠自己勤劳的双手啦
  3. 实现快速排序的算法_排序算法-快速排序
  4. 课外扩展:使用RADIUS来集中管理***服务器(2)
  5. python遍历文件_python遍历目录文件脚本的示例
  6. c++ || && 逻辑短路问题
  7. python关闭文件的函数_python打开与关闭文档
  8. java控制台输出五行字符串_java五行代码导出Excel
  9. How to Fix Git Push Time Consuming Issue in a Big Team?
  10. 科比生涯自述:忍受,然后征服——这就是曼巴精神
  11. GitLab 内置了 CI/CD 工具,强大啊!!
  12. 计算机如何共享桌面,怎么将自己的台式电脑屏幕与多人共享
  13. 计算机的语言栏怎么更改,语言栏不见了怎么调出来,笔者教你win7电脑语言栏不见了的解决方法...
  14. 银行硬件维护维修工单小程序开发制作
  15. 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数‘main’中: main1.c:(.text+0x9c):对‘pirnt1’未定义的引用 collect2: 错误:ld 返回 1
  16. 用Filmage Editor制作视频,赢不限时长录屏神器永久序列码!
  17. mybatis批量更新数据三种方法效率对比
  18. MySQL 不等于null或空格
  19. 性能测试工具ab和wrk
  20. 南邮 ctf web之综合题

热门文章

  1. Vue全家桶实战03_【从入门到放弃系列】
  2. eBay实践Hadoop MapReduce 任务的性能翻倍之路
  3. 大剑无锋之简单说一下聚簇索引和非聚簇索引?【面试推荐】
  4. spring入门案例plus
  5. mybatis实现CRUD(不使用DAO)
  6. leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)
  7. java并发Exchanger的使用
  8. 分布式系统优势及衡量指标
  9. java最小子串覆盖_Java 算法-最小子串覆盖
  10. git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法