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 LocalDate birthday;

}

2、添加一些测试数据

//测试数据,请不要纠结数据的严谨性

List studentList = new ArrayList<>();

studentList.add(new StudentInfo("李小明",true,18,1.76,LocalDate.of(2001,3,23)));

studentList.add(new StudentInfo("张小丽",false,18,1.61,LocalDate.of(2001,6,3)));

studentList.add(new StudentInfo("王大朋",true,19,1.82,LocalDate.of(2000,3,11)));

studentList.add(new StudentInfo("陈小跑",false,17,1.67,LocalDate.of(2002,10,18)));

使用年龄进行升序排序

//排序前输出

StudentInfo.printStudents(studentList);

//按年龄排序(Integer类型)

List studentsSortName = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge)).collect(Collectors.toList());

//排序后输出

StudentInfo.printStudents(studentsSortName);

排序后结果

使用年龄进行降序排序(使用reversed()方法)

//排序前输出

StudentInfo.printStudents(studentList);

//按年龄排序(Integer类型)

List studentsSortName = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge).reversed()).collect(Collectors.toList());

//排序后输出

StudentInfo.printStudents(studentsSortName);

排序后结果

使用年龄进行降序排序,年龄相同再使用身高升序排序

//排序前输出

StudentInfo.printStudents(studentList);

//按年龄排序(Integer类型)

List studentsSortName = studentList.stream()

.sorted(Comparator.comparing(StudentInfo::getAge).reversed().thenComparing(StudentInfo::getHeight))

.collect(Collectors.toList());

//排序后输出

StudentInfo.printStudents(studentsSortName);

排序后结果

补充知识:JAVA实现将文字合成到指定图片的指定位置(JAVA合成文本文字到图片文件:附font字体不生效解决办法)

实现效果如图:

代码如下:

参数s1,s2分别代表你想要合成到图片中的文字信息,如需多个可自行进行修改

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

/**

* create By Jlm

*/

public class ImgBean{

public static void ImgYin(String s1, String s2, String ImgName){

try{

File file = new File(ImgName);

Image src = ImageIO.read(file);

int wideth=src.getWidth(null);

int height=src.getHeight(null);

BufferedImage image=new BufferedImage(wideth,height,BufferedImage.TYPE_INT_RGB);

Graphics g=image.createGraphics();

g.drawImage(src,0,0,wideth,height,null);

//设置字体颜色

g.setColor(Color.RED);

//size字体大小

g.setFont(new Font("STKaiti",Font.PLAIN,50));

//wideth控制字体距离右侧边缘距离 height控制字体距离底部距离

g.drawString(s1,wideth-600,height-400);

g.drawString(s2,wideth-600,height-500);

g.dispose();

FileOutputStream out=new FileOutputStream(ImgName);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(image);

out.close();

}

catch(Exception e){

System.out.println(e);

}

}

public static void main(String[] args) {

ImgYin("1111111","2222222","/Users/jianglinmao/Downloads/11.png");

}

}

有的同学可能发现设置字体的时候可能不生效,目前博主已发现的原因为字体名称对应不上导致

首先在你要进行合成操作的环境下执行如下代码,看看目前该环境已存在的字体有哪些,找到自己想要的字体对应的名称即可

import java.awt.*;

/**

* Created by jlm on 2019/10/22.

*/

public class FontTest {

public static void main(String[] args) {

Font[] fonts = GraphicsEnvironment

.getLocalGraphicsEnvironment().getAllFonts();

for (Font f : fonts) {

System.out.println("Name:" + f.getFontName());

}

}

}

在控制台寻找自己想要的字体的英文名称,再替换到new Font()的指定位置就可以了

比如红色圈出来的就是字体仿宋和黑体对应的名称,博主试过输入中文是不生效的。

如果不想在原图片文件上直接修改,而是想根据原文件图片,修改后生成新的文件图片,修改代码如下位置即可

以上这篇Java8 使用 stream().sorted()对List集合进行排序的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

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

  1. Java8 使用 stream().sorted()对List集合进行排序

    集合对象定义 集合对象以学生类(StudentInfo)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项. 使用stream().sorted()进行排序,需要该类实现 Comparab ...

  2. java合并后求和_Java8使用stream实现list中对象属性的合并(去重并求和)

    前言 需要对一个list中的对象进行唯一值属性去重,属性求和,对象假设为billsnums,有id.nums.sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份. 例 ...

  3. java util包排序,利用stream sorted进行降序排序

    根据value值的大小进行降序排序,并进行截取. public static void main(String[] args) { List> list = Lists.newArrayList ...

  4. JDK8 集合排序 xxxList.stream.sorted(...)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. # 默认 list.stream().sorted() list.stream().sorted(C ...

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

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

  6. java 8 新特性_Java8新特性Stream

    Stream (在阅读本文前,请务必掌握Lambda表达式以及方法引用的使用:Lambda表达式--方法引用,Java8新特性Lambda表达式,在本文的示例中,使用了大量的Lambda表达式). S ...

  7. java sort 效率_性能对比:collections.sort vs treeSet sort vs java8 stream.sorted

    0 写在前面的话 在项目中有一个排序问题,考虑到未来需要排序的数据量可能很大,想用一个性能较好的排序算法,现在有三套解决方法:jdk提供的集合的sort方法(Collections.sort).一个可 ...

  8. Java stream().sorted()实现排序(升序、降序、多字段排序)

    1 自然排序 sorted():自然排序,流中元素需实现Comparable接口 package com.entity;import lombok.*;@Data @ToString @AllArgs ...

  9. 给大忙人看的Java核心技术笔记(8、Stream)

    流提供了数据视图,让你可以在比集合更高的概念层上指定操作.使用流只要指定做什么,而不是怎么做.将操作的调度执行留给实现. 要点: 1.迭代器使用了一种明确的遍历策略,同时也阻止了高效的并发执行 2.你 ...

最新文章

  1. 受益一生的15个学习习惯
  2. 干货丨从线性回归到无监督学习,数据科学家需要掌握的十大统计技术
  3. MySQL服务启动脚本
  4. 【OpenStack】OpenStack系列6之Sheepdog环境搭建
  5. springmvc 配置和spring配置?
  6. [收集]Sublime Text 3常用快捷键
  7. mysql显示修改密码_MySQL修改密码
  8. python selenium 怎么查找modal悬浮窗的内容_python教程:五分钟从pubmed down几万篇文献...
  9. SQL Server 加密层级
  10. 互动快报:从读报刊看性格
  11. Java编写五线谱上的音符_五线谱音符(五线谱1234567表示图)
  12. python发牌代码十点半_Python制作扑克牌发牌程序,另含大量Python代码!
  13. android的虚拟机
  14. 09静态资源虚拟主机
  15. linux重启搜狗输入法命令
  16. 支付宝APP支付之查看支付宝商户ID
  17. 心理测评软件php mysql_心理测评系统
  18. 财务分析与决策-习题纠缠
  19. BugTags简单集成
  20. Android音频录制方案,Android录音,录制其他App播放的声音

热门文章

  1. 来自朋友最近阿里、腾讯、美团等P7岗位面试题
  2. 黄哲铿:妙用“缓存”,应对亿级流量峰值(文末赠书)
  3. 谷歌官宣安卓改名!甜点不再
  4. 转:LruCache算法
  5. IntelliJ IDEA 添加copyright
  6. PHP移除json数据最右侧的逗号!
  7. 《自己动手做交互系统》——第2章 音乐蛋糕盘
  8. Bootstrap3 代码-程序输出
  9. Redmine for windows 一键安装
  10. Storm入门教程 Storm安装部署步骤