我有这个hashmap:
HashMap<String, ArrayList<String>> allhotels = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
我想按字母顺序对每个Arraylist中的所有值进行排序.这是我目前的方法:
public void sortHotels() {
for(int i = 0; i < allhotels.size(); i++) {
Collections.sort(allhotels.values().toArray(), String.CASE_INSENSITIVE_ORDER);
}
}
Run Code Online (Sandbox Code Playgroud)
我想在ArrayList中为hashmap中的每个条目排序字符串.
您没有对地图中包含的列表进行排序.您将地图中的所有列表作为包含列表的数组获取,并尝试使用用于对字符串进行排序的比较器对此列表数组进行排序.
你想要的是对地图的每个值进行排序.因此迭代值,并对它们进行排序:
for (List<String> list : allhotels.values()) {
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
}
Run Code Online (Sandbox Code Playgroud)