Cod*_*e__ 0 java sorting collections
我正在尝试以相反的顺序订购我的收藏,并且不区分大小写
到目前为止,这是我尝试做的事情:
Collections.sort(obj,String.CASE_INSENSITIVE_ORDER,Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)
输入:
varun,akash,shakshi,gowtham,VARUN
Run Code Online (Sandbox Code Playgroud)
输出:
akash,gowtham,shashi,varun,VARUN
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?
使用String.CASE_INSENSITIVE_ORDER.reversed()。
例子
List<String> list = Arrays.asList("varun", "akash", "shakshi", "gowtham", "VARUN");
list.sort(null); // Natural order: [VARUN, akash, gowtham, shakshi, varun]
System.out.println(list);
list.sort(String.CASE_INSENSITIVE_ORDER); // [akash, gowtham, shakshi, VARUN, varun]
System.out.println(list);
list.sort(String.CASE_INSENSITIVE_ORDER.reversed()); // [VARUN, varun, shakshi, gowtham, akash]
System.out.println(list);
list.sort(Collator.getInstance().reversed()); // [VARUN, varun, shakshi, gowtham, akash]
System.out.println(list);
Run Code Online (Sandbox Code Playgroud)
第一种排序将“VARUN”放在“varun”之前。由于其他种类认为它们是平等的,因此它们保留其余种类的顺序。
引用javadoc CASE_INSENSITIVE_ORDER:
请注意,此比较器不考虑区域设置,并且会导致某些区域设置的排序不令人满意。java.text 包提供了Collators来允许区域设置敏感的排序。
最后一个示例展示了如何使用Collator. 该示例使用 JVM 的默认区域设置。使用egCollator.getInstance(Locale.US)指定特定的区域设置。
| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |