,,Java8 使用 stream().sorted()对List集合进行排序的操作

,,Java8 使用 stream().sorted()对List集合进行排序的操作

这篇文章主要介绍了Java8使用流()。已排序()对目录集合进行排序的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1、声明一个测试对象

导入Java。时间。当地日期;

导入Java。util。列表;

进口龙目岛。数据;

@数据

公共类学生信息{

//名称

私有字符串名称;

//性别真实的男错误的女

私有布尔性别;

//年龄

私有整数年龄;

//身高

私人双高;

//出生日期

私人本地日期生日;

}

2、添加一些测试数据

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

ListStudentInfo学生列表=new ArrayList();

studentList.add(新的StudentInfo('李小明,true,18,1.76,LocalDate.of(2001,3,23)));

studentList.add(新的StudentInfo('张小丽,false,18,1.61,LocalDate.of(2001,6,3)));

studentList.add(新的StudentInfo('王大朋,true,19,1.82,LocalDate.of(2000,3,11)));

studentList.add(新的StudentInfo('陈小跑,false,17,1.67,LocalDate.of(2002,10,18)));

使用年龄进行升序排序

//排序前输出

学生信息。打印学生(学生名单);

//按年龄排序(整数类型)

ListStudentInfo学生排序名称=学生列表。流().已排序(比较器。comparisng(学生信息:getAge)).收藏(收藏者。to list());

//排序后输出

学生信息。打印学生(学生排序名称);

排序后结果

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

//排序前输出

学生信息。打印学生(学生名单);

//按年龄排序(整数类型)

ListStudentInfo学生排序名称=学生列表。流().已排序(比较器。comparisng(学生信息:getAge)).反转())。收藏(收藏者。to list());

//排序后输出

学生信息。打印学生(学生排序名称);

排序后结果

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

//排序前输出

学生信息。打印学生(学生名单);

//按年龄排序(整数类型)

list studentinfo students sort name=学生列表。流()。已排序(比较器。comparisng(学生信息:getAge)).反转()。然后比较(StudentInfo:getHeight))。收藏(收藏者。to list());

//排序后输出

学生信息。打印学生(学生排序名称);

排序后结果

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

实现效果如图:

代码如下:

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

导入com。星期日形象。编解码器。JPEG。JPEG编解码器;

导入com。星期日形象。编解码器。JPEG。jpegimageencoder

导入javax。imageio。imageio

导入Java。awt。*;

导入Java。awt。形象。缓冲图像;

导入Java。io。文件;

导入Java。io。文件输出流;

/**

*由Jlm创建

*/

公共类ImgBean{

public static void ImgYin(字符串S1,字符串s2,字符串ImgName){

尝试{

文件文件=新文件(img名称);

image src=imageio。读取(文件);

int width=src。getwidth(null);

int height=src。getheight(null);

BufferedImage=新的缓冲图像(宽度,高度,缓冲图像.TYPE _ INT _ RGB);

图形g=图像。创建图形();

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

//设置字体颜色

g.setColor(颜色。红色);

//大小字体大小

g.setFont(新字体(' STKaiti ',字体。平原,50));

//宽度控制字体距离右侧边缘距离高度控制字体距离底部距离

g。抽绳(s1,宽-600,高-400);

g。抽绳(s2,宽-600,高-500);

g。dispose();

文件输出流out=新文件输出流(img名);

JPEGImageEncoder编码器=JPEG编解码器。createjpegencoder(out);

编码器. encode(图像);

出去。close();

}

捕捉(异常e){

系统。出去。println(e);

}

}

公共静态void main(String[] args) {

ImgYin('1111111 ',' 2222222 ','/Users/江林茂/下载/11。png’);

}

}

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

首先在你想要合成的环境中执行下面的代码,看看环境中目前存在哪些字体,找到你想要的字体对应的名称。

导入Java . awt . *;

/**

*由jlm于2019/10/22创建。

*/

公共类FontTest {

公共静态void main(String[] args) {

font[]font=graphics environment。getLocalGraphicsEnvironment()。getAllFonts();

for(字体f:字体){

system . out . println(' Name:' f . get font Name());

}

}

}

在控制台中查找所需字体的英文名称,然后将其替换为新字体的指定位置()。

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

如果不想直接修改原始图像文件,而是想根据原始图像文件生成修改后的新文件图像,修改代码如下

上面的Java8操作使用的是stream()。sorted()对列表集进行排序,是边肖共享的所有内容。希望能给你一个参考,多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: