java 字符串数组如何按字母排序?

package com.template;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Internationalization {

    private static Map<String, Object> dataMap;

    static {
        dataMap = new HashMap<>();
        dataMap.put("INTERFACE", "接口");
        dataMap.put("LIST", "列表");
        dataMap.put("ITEM", "项目");
        dataMap.put("ADD", "添加");
        dataMap.put("DELETE", "删除");
        dataMap.put("EDIT", "编辑");
    }

    public static void printKey() {
        Set keySet = dataMap.keySet();
        for (Object item : keySet) {
            System.out.println(item);
        }
    }

}

当前的输出结果

ITEM
ADD
DELETE
INTERFACE
EDIT
LIST

需要对列表进行字母排序, 将输出结果调整为如下

ADD
DELETE
EDIT
INTERFACE
ITEM
LIST

阅读 2.3k
2 个回答

转数组排序

Object[] arr = dataMap.keySet().toArray();
// 或 String[] arr = dataMap.keySet().toArray(new String[dataMap.size()]);
// 或 String[] arr = dataMap.keySet().toArray(String[]::new); // java 11
Arrays.sort(arr);
for (Object k : arr) {
    System.out.println(k);
}

List 排序

List<String> list = new ArrayList<>(dataMap.keySet());
Collections.sort(list);
// 或 list.sort(null); // java 8
for (String k : list) {
    System.out.println(k);
}

流排序

dataMap.keySet().stream().sorted().forEach(System.out::println); // java 8
    dataMap.keySet().stream().sorted().forEach(System.out::println);

    dataMap.keySet().stream().sorted(String.CASE_INSENSITIVE_ORDER).forEach(System.out::println);

    dataMap.keySet().stream().sorted(Comparator.naturalOrder()).forEach(System.out::println);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题