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


回答:

转数组排序

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);

以上是 java 字符串数组如何按字母排序? 的全部内容, 来源链接: utcz.com/p/944572.html

回到顶部