Когда я конвертирую в нижний регистр, все идет в правильном порядке.
Когда я пытаюсь преобразовать в верхний регистр, это неправильно.
Я пытаюсь использовать LinkedHashMap для сохранения порядка вставки.
Я думаю, что поток изменил порядок ключей, но я не знаю, как сортировать после изменения ключа.
Вот мой код:
import java.util.*;
import java.util.stream.Collectors;
public class Test {
static List convertKeyCase (List list,int...s) {
return list.stream().map(m -> m.entrySet().stream().sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(p -> s.length == 0 || s[0]==1 ? p.getKey().toUpperCase():p.getKey().toLowerCase(), Map.Entry::getValue)))
.collect(Collectors.toList());
}
public static void main(String[] args) {
List list1 = new ArrayList();
Map map1 = new LinkedHashMap();
Map map2 = new LinkedHashMap();
map1.put("date","2021-06-03");
map1.put("weather","1");
map1.put("wind","2-3");
map1.put("temp","17-29°C");
list1.add(map1);
map2.put("date","2021-06-04");
map2.put("weather","1");
map2.put("wind","3-4");
map2.put("temp","17-30°C");
list1.add(map2);
List list = convertKeyCase(list1);
List list2 = convertKeyCase(list1,0);
System.out.println(list);
System.out.println(list2);
}
}
Подробнее здесь: https://stackoverflow.com/questions/678 ... n-though-i
Почему при преобразовании ключа в верхний регистр он не соответствует порядку ключа, хотя я использую LinkedHashMap ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение