使用 java 根据静态映射中提到的顺序进行排序



如何根据静态映射中提到的顺序对字符串列表进行排序,以列表项为键。

List={"AU","I","U", "O", "A1"}

需要使用下面的映射对上面的字符串列表进行排序,该映射具有等效的键和必须进行排序的顺序。

static Map<String, Integer> map= new LinkedHashMap<>() ;
static {
map.put("O",1);
map.put("U",2);
map.put("A1",3);
map.put("I",4);
map.put("AU",5);
} 

如何做到这一点?

使用以下映射的自定义比较器:

static Map<String, Integer> map = new LinkedHashMap<>();
static {
map.put("O", 1);
map.put("U", 2);
map.put("A1", 3);
map.put("I", 4);
map.put("AU", 5);
}
public static void main(String[] args) {
List<String> list = new ArrayList<>(List.of("AU", "I", "U", "O", "A1"));
list.sort(Comparator.comparing(a -> map.get(a)));
System.out.println(list); // [O, U, A1, I, AU]
}

最新更新