У меня есть список, который я конвертирую в карту, чтобы выполнить некоторую работу. После этого я преобразую карту обратно в список, но на этот раз порядок случайный. Мне нужен тот же первоначальный порядок, который сохранен в моем втором списке.
очевидная причина заключается в том, что HashMap не поддерживает порядок. Но мне нужно что-то сделать, чтобы это произошло. Я не могу изменить реализацию карты. Как я могу это сделать?
Рассмотрим данный код:
import java.util.*;
public class Dummy {
public static void main(String[] args) {
System.out.println("Hello world !");
List<String> list = new ArrayList<String>();
list.add("A");list.add("B");list.add("C");
list.add("D");list.add("E");list.add("F");
Map<String,String> map = new HashMap<String, String>();
for(int i=0;i<list.size();i=i+2)
map.put(list.get(i),list.get(i+1));
// Use map here to do some work
List<String> l= new ArrayList<String>();
for (Map.Entry e : map.entrySet()) {
l.add((String) e.getKey());
l.add((String) e.getValue());
}
}
}
Например: сначала, когда я распечатал элементы списка, он распечатал
A B C D E F
Теперь, когда я печатаю элементы List l
, он печатает
E F A B C D