这篇文章主要介绍了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。