Jee*_*eef 39 java lambda functional-programming java-8
有人能告诉我一个快速的例子,说明如何ArrayList使用新的lambda语法在Java 8中按字母顺序排序.
小智 58
对于字符串,这将起作用
arrayList.sort((p1, p2) -> p1.compareTo(p2));
Run Code Online (Sandbox Code Playgroud)
Lou*_*man 27
你只是在排序String吗?如果是这样,你不需要lambdas; 毫无意义.你这样做
import static java.util.Comparator.*;
list.sort(naturalOrder());
Run Code Online (Sandbox Code Playgroud)
...虽然如果你用一个String字段对对象进行排序,那么它会更有意义:
list.sort(comparing(Foo::getString));
Run Code Online (Sandbox Code Playgroud)
假设您有要按字母顺序排序的名称列表(字符串)。
List<String> result = names.stream().sorted(
Comparator.comparing(n->n.toString())).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
它的工作完美。
使用 list.sort(String::compareToIgnoreCase)
使用list.sort(String::compareTo)或list.sort(Comparator.naturalOrder())将给出错误的(即非字母)结果。它将排序任何之前大写字母全部小写字母,所以该阵列["aAAA","Zzz", "zzz"]被分拣到["Zzz", "aAAA", "zzz"]
| 归档时间: |
|
| 查看次数: |
64051 次 |
| 最近记录: |