您现在的位置是:首页 > Javascript
当前栏目
集合按字段排序,单多属性去重
2023-04-18 14:22:52 时间
// 实体类
package com.example.listsorttest.collectionsort;
import lombok.Data;
@Data
public class Student {
private String name;
private int age;
private String code;
public Student(String name, int age, String code) {
this.name = name;
this.age = age;
this.code = code;
}
}
// 业务功能代码
package com.example.listsorttest.collectionsort;
import org.junit.Test;
import java.util.*;
import java.util.stream.Collectors;
public class ListSortTest {
Student s1 = new Student(“张三”,16,“1”);
Student s2 = new Student(“张大”,17,“1”);
Student s3 = new Student(“张三”,19,“1”);
Student s4 = new Student(“张三”,16,“1”);
Student s5 = new Student(“张五”,16,“1”);
// 按字段排序
@Test
public void test1() {
List list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
List<String> lst = Arrays.asList("张五","张大","张三");
list.sort(Comparator.comparingInt((o)->lst.indexOf(o.getName())));
System.out.println(list.size() +"-");
System.out.println(list);
}
// 多属性去重
@Test
public void test2() {
List<Student> list = Arrays.asList(s1,s2,s3,s4,s5);
Set<Student> set = new TreeSet<>(Comparator.comparing(o->(o.getName())+""+(o.getAge())));
set.addAll(list);
ArrayList<Student> students = new ArrayList<>(set);
students.forEach(System.out::println);
System.out.println("==========================");
List<String> collect = students.stream().map(Student::getName).distinct().collect(Collectors.toList());
System.out.println(collect);
}
// 单属性去重
@Test
public void test3() {
List<Student> list = Arrays.asList(s1,s2,s3,s4,s5);
Set<Student> set = new TreeSet<>(Comparator.comparing(Student::getName));
set.addAll(list);
ArrayList<Student> students = new ArrayList<>(set);
students.forEach(System.out::println);
System.out.println("=======================");
//list取出map集合中某一元素集合
List<String> collect = students.stream().map(Student::getName).collect(Collectors.toList());
System.out.println(collect);
}
// list属性按对象属性排序
@Test
public void test4() {
List<Student> list = Arrays.asList(s1,s2,s3,s4,s5);
// 字段排序
List<String> lst = Arrays.asList("张五","张大","张三");
list.sort(Comparator.comparing(o->lst.indexOf(o.getName())));
System.out.println(list);
}
}
相关文章
- HTML5七夕情人节表白结婚邀请函网页制作(HTML+CSS+JavaScript)
- HTML情人节表白代码,给女朋友的电子情书代码,女朋友表白代码
- 【博主推荐】HTML浪漫表白求爱(附源码)
- html情人节代码,2023年情人节代码,含鼠标特效的2023情人节代码
- Web的8种(6+2)元素+常用定位方法
- html程序员表白前端网页源码
- 浪漫爱心表白网页模板
- 情人节程序员用HTML网页表白【守护爱情(泡泡游戏)】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- html表白代码
- HTML可用于情侣表白的爱心代码~,赶紧跟着操作,让她也拥有属于你的爱心吧。
- 情人节程序员用HTML网页表白【超具创意的网页生日快乐】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- html实现爱情浪漫表白甜蜜时刻(附源码)
- 博客帮助文档
- 【SPSS】多因素方差分析详细操作教程(附案例实战)
- 【SPSS】单因素方差分析详细操作教程(附案例实战)
- 为什么评论会被折叠?
- pyuic5和pyrcc的使用方法
- Vue3的生命周期函数
- 这12个前端在线工具网站,建议每个开发人员了解下
- Spring Boot 实现装饰器模式,真香!