Java中List集合中多个字段如何排序
在Java中,可以使用Comparator
结合List.sort
方法或者Collections.sort
方法来对List集合中的多个字段进行排序。以下是一个示例,演示如何先按字段A排序,然后按字段B排序:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Item {
int fieldA;
int fieldB;
public Item(int fieldA, int fieldB) {
this.fieldA = fieldA;
this.fieldB = fieldB;
}
// getters and setters
public int getFieldA() {
return fieldA;
}
public int getFieldB() {
return fieldB;
}
}
public class MultiFieldSortExample {
public static void main(String[] args) {
List<Item> items = new ArrayList<>();
items.add(new Item(1, 3));
items.add(new Item(2, 1));
items.add(new Item(1, 2));
// 先按字段A升序排序,再按字段B升序排序
Collections.sort(items, Comparator.comparingInt(Item::getFieldA)
.thenComparingInt(Item::getFieldB));
// 打印排序结果
items.forEach(item -> System.out.println(item.fieldA + ", " + item.fieldB));
}
}
在这个例子中,我们定义了一个Item
类,有两个字段fieldA
和fieldB
。我们使用Collections.sort
方法和Comparator
来首先按fieldA
升序排序,如果fieldA
相同,则按fieldB
升序排序。
输出将是按照fieldA
和fieldB
排序后的items
列表。
评论已关闭