java - Java 中的 Arrays.asList 排序

标签 java arrays sorting arraylist

import java.util.Arrays;
import java.util.List;

public class CapitalizeAndSort {
    public static void main(String[] args) {

        List<String> topNames2017 = Arrays.asList(
            "Amelia", 
            "Olivia", 
            "emily", 
            "Isla", 
            "Ava", 
            "oliver", 
            "Jack",
            "Charlie", 
            "harry", 
            "Jacob"
        );               

        for(int i = 0; i < topNames2017.size(); i++) {
            topNames2017.set(i, capitalize(topNames2017.get(i))); 
        }   

        List<String> sorted = Arrays.asList(
            topNames2017.stream().sorted(
                (s1, s2) -> s1.compareToIgnoreCase(s2)
                ).toArray(String[]::new)
            );

        sorted.forEach(System.out::println);
    }
    private static String capitalize(final String line) {
        return Character.toUpperCase(line.charAt(0)) + line.substring(1);
    }
}

上面的代码可以工作并按照我想要的方式对其进行排序。

如何使用方法引用按字母顺序排序并确保第一个字母大写?

非常感谢您的帮助!

最佳答案

您可以按字母顺序对文字进行排序,如下所示:

Collections.sort(topNames2017, String.CASE_INSENSITIVE_ORDER);

并将第一个字母大写,如下所示:

topNames2017 = topNames2017.substring(0, 1).toUpperCase() + topNames2017.substring(1);

关于java - Java 中的 Arrays.asList 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635007/

相关文章:

python - 如何在Python中创建一个给出数组元素的函数?

java - 排序时间总是与第一次排序不同

sql-server - SQL Server 2005 和 SQL Server 2012 中选择查询的默认排序顺序

javascript - 根据嵌入文档的数量对记录进行排序

Java:返回语句的其他可能形式

python - 如何根据值比较python中的两个数组

java - 我只是尝试安装 Netbeans,但 JDK 有更多问题

c++ - '.' 和 '->' 在数组中使用时有什么区别?

java - 在java中跨平台处理拖放和上下文菜单事件

java - 在 JAX-WS 中禁用 SSL 套接字连接池?