Хотя ответ Скотта Стэнчфилда, как правило, в настоящее время является наиболее простым способом сделать это в Java, если у вас есть другие функциональные возможности, которые вы можете захотеть сделать со свойствами вашего класса, может быть полезно использовать Guava Функция с.
public class Class1 {
...
public static final Function<Class1, Integer> GET_SOC =
new Function<Class1, Integer>() {
public Integer apply(Class1 input) {
return input.soc;
}
};
...
}
Затем вы можете использовать класс Ordering для сортировки:
List<Class1> list = ...;
Collections.sort(list, Ordering.natural().reverse().onResultOf(Class1.GET_SOC));
При этом используется обратный порядок естественного порядка, основанный на свойстве soc
каждого экземпляра Class1
, чтобы получить нужный порядок.