Java8利用stream流实现数字排序和中文排序(包括升降序)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java8利用stream流实现数字排序和中文排序(包括升降序),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2399字,纯文字阅读大概需要4分钟。
内容图文
代码部分
利用stream的sorted()
进行实现中文排序和数字排序(包括降序和升序),非常简单。
import java.text.Collator;
import java.util.*;
import java.util.stream.Collectors;
public class Demo {
static class Student {//只是为了方便演示
private Integer id;
private String name;
private String grade;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(Integer id, String name, String grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", grade='" + grade + '\'' +
'}';
}
}
public static void main(String[] args) {
//测试数据,可以看到顺序是乱的。
List<Student> user = new ArrayList<>();
user.add( new Student(1, "张三","一年级"));
user.add( new Student(4, "李四","三年级"));
user.add( new Student(2, "王五","二年级"));
user.add( new Student(3, "赵六","四年级"));
//按编号升序(默认)
List<Student> collect1 = user.stream().sorted(Comparator.comparingInt(Student::getId)).collect(Collectors.toList());
//遍历输出
System.out.println("编号升序");
collect1.forEach(System.out::println);
System.out.println("===========================================================================");
//按年级升序(默认)
List<Student> collect = user.stream()
.sorted((o1, o2) -> Collator.getInstance(Locale.TRADITIONAL_CHINESE).compare(o1.getGrade(),o2.getGrade())).collect(Collectors.toList());
//遍历输出
System.out.println("中文升序");
collect.forEach(System.out::println);
System.out.println("===========================================================================");
//按编号降序
List<Student> collect2 = user.stream().sorted((o1, o2) -> o2.getId() - o1.getId()).collect(Collectors.toList());
//遍历输出
System.out.println("编号降序");
collect2.forEach(System.out::println);
System.out.println("===========================================================================");
//按年级降序
List<Student> collect3 =
user.stream().sorted((o1, o2) -> Collator.getInstance(Locale.TRADITIONAL_CHINESE).compare(o2.getGrade(),o1.getGrade())).collect(Collectors.toList());
//遍历输出
System.out.println("中文降序");
collect3.forEach(System.out::println);
}
}
测试结果
可以看到成功:
图片上传失败!
stream确实好用一行代码搞定聚合、过滤、排序操作等。
内容总结
以上是互联网集市为您收集整理的Java8利用stream流实现数字排序和中文排序(包括升降序)全部内容,希望文章能够帮你解决Java8利用stream流实现数字排序和中文排序(包括升降序)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。