hutool User{address,username,age,realname} address地点排序:是按照河源、深圳、惠州、中山、东莞(比如说长安、大岭山、塘厦、寮步,这些都是东莞市的,统一归纳在一起,)(福永、龙岗、布吉、沙井等这些是属于深圳市的,也统一摆在一起)
时间: 2023-07-03 09:11:03 浏览: 31
您好,可以使用Java的Collections.sort()方法来对地址进行排序。您可以先定义一个Comparator来指定排序规则,然后再调用sort()方法进行排序。
以下是一个示例代码:
```
import java.util.*;
public class AddressSort {
public static void main(String[] args) {
List<User> userList = new ArrayList<>(); // 假设这里有一个User列表
// 排序规则
Comparator<User> comparator = new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
// 定义地址排序规则
List<String> addressOrder = Arrays.asList("河源", "深圳", "惠州", "中山", "东莞");
int index1 = addressOrder.indexOf(getCity(u1.getAddress()));
int index2 = addressOrder.indexOf(getCity(u2.getAddress()));
return Integer.compare(index1, index2);
}
};
Collections.sort(userList, comparator); // 对User列表按地址排序
// 输出排序后的User列表
for (User user : userList) {
System.out.println(user.getAddress());
}
}
// 获取地址中的城市名
private static String getCity(String address) {
// 假设地址格式为“城市-地区”,这里只需要返回城市名
return address.split("-")[0];
}
}
class User {
private String address;
private String username;
private int age;
private String realname;
// 省略getter和setter
}
```
在上面的示例代码中,我们定义了一个Comparator来指定地址排序规则。这里使用了List.indexOf()方法来确定地址在排序规则中的位置,然后使用Integer.compare()方法进行比较。最后调用Collections.sort()方法对User列表进行排序。值得注意的是,我们在getCity()方法中只返回了地址中的城市名,这是因为我们只需要按照城市来排序,地区可以忽略。