Java对数据进行排序
public class JavaSortTest {
@Data
class User{
String name;
Integer age;
Integer gender;
public User(String name, Integer age, Integer gender){
this.name = name;
this.age = age;
this.gender = gender;
}
}
List<User> users = new ArrayList<>();
@Test
void dataSort(){
users.add(new User("张三",18,1));
users.add(new User("王五",20,1));
users.add(new User("李四",19,0));
users.add(new User("田七",22,1));
users.add(new User("赵六",21,0));
users.add(new User("吴十",25,0));
users.add(new User("孙八",23,0));
users.add(new User("周九",24,1));
List<Integer> list1 = Arrays.asList(2, 3, 4, 6, 5, 1);
Collections.sort(list1);
System.out.println(list1);
Comparator<Integer> compare = Integer::compare;
Comparator<Character> compare1 = Character::compare;
Comparator<User> compare2 = Comparator.comparing(User::getAge);
users.sort(compare2);
System.out.println("按照升序排序:"+users);
Comparator<User> compare3 = Comparator.comparing(User::getAge).reversed();
users.sort(compare3);
System.out.println("按照倒序排序:"+users);
User[] users2 = this.users.stream().toArray(User[]::new);
Arrays.sort(users2,compare2);
System.out.println("数据保存在数组里面:"+ Arrays.toString(users2));
Collections.sort(users,compare2);
System.out.println("数据保存在集合里面:"+users);
Stream.of(users2,compare2).forEach(e -> System.out.println("不改变原始数据,使用构造器:"+e));
Arrays.stream(users2).sorted(compare2).forEach(System.out::print);
}
}