List<String> list = new ArrayList<String>();
list.add("b");
list.add("a");
list.add("z");
list.add("p");
list.stream().sorted();
System.out.println(list);
[b, a, z, p]
为什么我没有得到自然排序的输出?
改变这个
list.stream().sorted();
System.out.println(list);
像是
list.stream().sorted().forEachOrdered(System.out::println);
您的方法是打印列表
(而不是排序流)。或者(或者另外),您可以缩短初始化例程并重新收集列表
,如下所示
List<String> list = new ArrayList<>(Arrays.asList("b","a","z","p"));
list = list.stream().sorted().collect(Collectors.toList());
System.out.println(list);
[a, b, p, z]
我有一个列表,像
问题内容: 我有一个带有文件名的字符串列表: 输出: 但是我想要: 有没有简单的方法可以做到这一点? 问题答案: 是: 说明:字符串按词法排序,因此在字符串之前(因为< ,因此忽略第一个字符串之后的内容)。因此,我们使用的参数是一个回调函数,该函数接受一个列表项并返回用于对该项目进行排序的值- 在您的情况下,是从文件名的第一部分构建的整数。这样,列表就可以正确地按数值排序。
问题内容: 我有一个日期字符串的任意列表(mm-yyyy),如下所示: 我需要此列表首先按年(升序)级别排序,然后按月(升序)级别排序..以便逻辑顺序可以是: 我该如何实现? 问题答案: 尝试这个:
我正在尝试根据买入或卖出方向对股票订单列表进行排序。 我试过这样的方法: 我看到下面的错误消息,我不清楚。 不兼容的类型。必需的int,但已将“comparing”推断给Comparator:不存在类型变量T,U的实例,因此Comparator符合Integer。
我有这个字符串列表 我想根据其中的数字对这个列表进行排序。 例如,如果我有,我希望它像一样排序。 我使用了,但它返回类似的内容。 我应该怎么做才能把它按正确的顺序排列?
问题内容: 我想按用户区域在字符串列表下面进行排序 对于不同的用户区域设置,排序输出应与该区域设置不同。 如何按用户区域排序以上列表? 我试过了 但这不适用于本地化,因此如何将locale参数传递给或有其他有效方法? 问题答案: 您可以对自定义比较器使用排序。请参阅整理器界面 整理器是一个比较器,可以直接传递给该方法。