1.基础计算
比方有10用户对象信息list对象,通过ID进行从小到大排序,如何进行,第一位对象信息除了ID复制到第二位,第二位复制到第三位,第三位复制到第4位,…一直到最后一位,将最后一位信息除ID外复制列第一位。
package org.example;
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}';
}
}
package org.example;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 示例用户列表
List<User> users = new ArrayList<>();
users.add(new User(3, "Alice", 25));
users.add(new User(1, "Bob", 30));
users.add(new User(5, "Charlie", 28));
users.add(new User(2, "David", 22));
users.add(new User(4, "Eve", 35));
users.add(new User(6, "Frank", 40));
users.add(new User(7, "Grace", 33));
users.add(new User(8, "Hannah", 27));
users.add(new User(9, "Isaac", 26));
users.add(new User(10, "Jack", 29));
// 按ID从小到大排序
users.sort(Comparator.comparingInt(User::getId));
// 输出排序后的列表
System.out.println("排序后的列表:");
users.forEach(System.out::println);
// 创建一个临时变量,存储最后一个用户的信息(除ID外)
String lastName = users.get(users.size() - 1).getName();
int lastAge = users.get(users.size() - 1).getAge();
// 从后往前,将每个用户的信息复制到下一个用户
for (int i = users.size() - 1; i > 0; i--) {
users.get(i).setName(users.get(i - 1).getName());
users.get(i).setAge(users.get(i - 1).getAge());
}
// 将最后一个用户的信息复制到第一个用户
users.get(0).setName(lastName);
users.get(0).setAge(lastAge);
// 输出复制后的列表
System.out.println("\n复制后的列表:");
users.forEach(System.out::println);
}
}