一个java对象的arraylist 根据list中对象的某个String字段对list排序 怎么做
时间: 2024-03-28 22:42:10 浏览: 78
可以使用Java中的Collections.sort(List<T> list, Comparator<? super T> c)方法来实现。其中,Comparator是一个接口,它的compare(T o1, T o2)方法用于比较两个对象的大小,返回一个int类型的值,表示o1与o2的大小关系,如果o1大于o2,则返回正整数,如果o1等于o2,则返回0,如果o1小于o2,则返回负整数。
具体实现步骤如下:
1. 定义一个实现Comparator接口的比较器类,该类中的compare方法根据某个String字段比较两个对象的大小。
例如,如果我们要根据对象中的name字段进行比较,可以这样实现比较器类:
```
class MyComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getName().compareTo(o2.getName());
}
}
```
2. 创建一个ArrayList<MyObject>对象,并向其中添加元素。
```
List<MyObject> list = new ArrayList<>();
list.add(new MyObject("Tom"));
list.add(new MyObject("Jack"));
list.add(new MyObject("Alice"));
list.add(new MyObject("Bob"));
```
3. 调用Collections.sort方法,将list按照指定的比较器进行排序。
```
Collections.sort(list, new MyComparator());
```
这样,list中的元素就按照name字段进行了排序。
阅读全文