我有Java bean類,我想通過一個String類型的bean屬性對這些bean的列表進行排序。我怎樣才能做到這一點?如何通過Java中的對象的字符串值進行排序
0
A
回答
4
要麼使類型本身實現Comparable<Foo>
,通過比較兩個字符串實現compareTo
方法,或者實現一個Comparator<Foo>
,它再次通過字符串進行比較。
通過第一種方法,您可以直接使用Collections.sort()
;與第二,你會使用Collections.sort(collection, new FooComparator());
例如:
public class Foo {
public String getBar() {
...
}
}
public class FooComparatorByBar implements Comparator<Foo> {
public int compare(Foo x, Foo y) {
// TODO: Handle null values of x, y, x.getBar() and y.getBar(),
// and consider non-ordinal orderings.
return x.getBar().compareTo(y.getBar());
}
}
+1
應該就是比較器而不是比較器? – 2012-02-06 12:09:22
+0
@Scobal:是的,正在修復一個更大的編輯。 – 2012-02-06 12:10:47
1
通過使用自定義比較?
import java.util.*;
class Bean {
public final String name;
public final int value;
public Bean(final String name, final int value) {
this.name = name;
this.value = value;
}
@Override
public String toString() {
return name + " = " + value;
}
}
public class SortByProp {
private static List<Bean> initBeans() {
return new ArrayList<Bean>(Arrays.asList(
new Bean("C", 1),
new Bean("B", 2),
new Bean("A", 3)
));
}
private static void sortBeans(List<Bean> beans) {
Collections.sort(beans, new Comparator<Bean>() {
public int compare(Bean lhs, Bean rhs){
return lhs.name.compareTo(rhs.name);
}
});
}
public static void main(String[] args) {
List<Bean> beans = initBeans();
sortBeans(beans);
System.out.println(beans);
}
}
0
使用Guava,它只是
Collections.sort(list, Ordering.natural().compose(Functions.toStringFunction()));
相關問題
- 1. 如何通過pascal中的第一個字符對字符串進行排序?
- 2. 如何通過一個字符串屬性進行排序對象的數組
- 3. 如何通過python中的屬性值對對象的字典進行排序?
- 4. 如何通過PHP中的對象字段對對象數組進行排序?
- 5. 如何通過字符串值對數組中的對象數組進行排序?
- 6. 如何對字符串中的字符進行排序?
- 7. 如何通過嵌套值對JSON對象進行排序?
- 8. 如何通過枚舉值對對象進行排序?
- 9. 通過鍵值對JavaScript數組中的對象進行排序
- 10. 如何在java中對字符串數組進行排序?
- 11. 如何對字母數字字符串值進行排序?
- 12. 如何對java中的字母數字字符進行排序?
- 13. 通過包含數字對字符串數組進行排序?
- 14. 對Java中包含數字的字符串進行排序
- 15. 對字符串中的字符進行排序的C程序
- 16. 如何對包含Java中的數字的字符串進行排序
- 17. 根據字符串中的數字對字符串進行排序Java
- 18. 如何通過價值對象進行排序
- 19. 如何通過Java中的多個字段來排序對象?
- 20. 如何對C中數組中的字符串進行排序?
- 21. 如何通過嵌套對象字段進行排序?
- 22. 通過頻率映射對字符串進行排序
- 23. 通過字符串形式的屬性對對象排序
- 24. 通過數組中的字符串進行排序?
- 25. VBScript - 如何通過數值對文本文件中的字母數字字符串進行排序?
- 26. JavaScript - 如何通過數字字符串對數組進行排序?
- 27. 如何對批次中的字符串列表進行排序?
- 28. 如何對字符串ArrayList中的元素進行排序?
- 29. 如何使用Kendo-Grid中的字符串值對數值進行排序
- 30. 如何通過Scala中的鍵對字典進行排序?
的可能重複:http://stackoverflow.com/questions/3342517/sorting-arraylist-of-objects-by-object-attribute – Kris 2012-02-06 12:07:10