// 实体类
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 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 list = Arrays.asList(s1,s2,s3,s4,s5);Set set = new TreeSet<>(Comparator.comparing(o->(o.getName())+""+(o.getAge())));set.addAll(list);ArrayList students = new ArrayList<>(set);students.forEach(System.out::println);System.out.println("==========================");List collect = students.stream().map(Student::getName).distinct().collect(Collectors.toList());System.out.println(collect);
}
// 单属性去重
@Test
public void test3() {List list = Arrays.asList(s1,s2,s3,s4,s5);Set set = new TreeSet<>(Comparator.comparing(Student::getName));set.addAll(list);ArrayList students = new ArrayList<>(set);students.forEach(System.out::println);System.out.println("=======================");//list取出map集合中某一元素集合List collect = students.stream().map(Student::getName).collect(Collectors.toList());System.out.println(collect);
}
// list属性按对象属性排序
@Test
public void test4() {List list = Arrays.asList(s1,s2,s3,s4,s5);// 字段排序List lst = Arrays.asList("张五","张大","张三");list.sort(Comparator.comparing(o->lst.indexOf(o.getName())));System.out.println(list);
}
}
下一篇:专注于云软件安全的8种方法