Flask接口签名sign原理与实例代码浅析
735
2022-11-18
Java8 使用 stream().sorted()对List集合进行排序的操作
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.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)));
使用年龄进行升序排oozdWF序
//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)
List
//排序后输出
StudentInfo.printStudents(studentsSortName);
排序后结果
使用年龄进行降序排序(使用reversed()方法)
//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)
List
//排序后输出
StudentInfo.printStudents(studentsSortName);
排序后结果
使用年龄进行降序排序,年龄相同再使用身高升序排序
//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)
List
.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{
http://
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("111oozdWF1111","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()的指定位置就可以了
比如红色圈出来的就是字体仿宋和黑体对应的名称,博主试过输入中文是不生效的。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~