如何在Collectors函数中对获取的货币代码ArrayList进行排序?
解决货币代码列表未排序的问题
你只需要在Stream流的处理链中添加sorted()操作,就能让货币代码按自然字母顺序排序后再收集成列表,修改后的代码如下:
List<String> currencies = Currency.getAvailableCurrencies().stream() .map(Currency::getCurrencyCode) .sorted() // 新增排序步骤,按自然字母顺序排列 .collect(Collectors.toList());
如果需要不区分大小写的排序(虽然货币代码本身都是大写,但这个写法可以作为通用参考),可以传入指定的排序比较器:
List<String> currencies = Currency.getAvailableCurrencies().stream() .map(Currency::getCurrencyCode) .sorted(String.CASE_INSENSITIVE_ORDER) .collect(Collectors.toList());
另外,你也可以选择在收集完列表后再排序,不过流式处理中直接排序的方式更连贯高效:
List<String> currencies = Currency.getAvailableCurrencies().stream() .map(Currency::getCurrencyCode) .collect(Collectors.toList()); Collections.sort(currencies); // 收集后对列表进行排序
内容的提问来源于stack exchange,提问作者MayRegio
相关产品推荐
相关产品推荐

