Можно ли получить список значений из HashMap
в качестве эталонаПолучить значения из HashMap в качестве ссылки
class MyCustomObject {
String name;
Integer id;
MyCustomObject(String name, Integer id){
this.name = name;
this.id = id;
}
}
HashMap<Integer, MyCustomObject> map = new LinkedHashMap<>();
map.put (1, new MyCustomObject("abc",1));
map.put (2, new MyCustomObject("xyz",2));
List<MyCustomObject> list = new ArrayList<>(map.values());
Log.i(TAG,"************ List from HashMap ************");
for (MyCustomObject s : list) {
Log.i(TAG,"name = "+s.name);
}
list.set(0,new MyCustomObject("temp",3));
Log.i(TAG,"************ List from HashMap after update ************");
for (MyCustomObject s : list) {
Log.i(TAG,"name = "+s.name);
}
Log.i(TAG,"************ List from HashMap ************");
List<MyCustomObject> list2 = new ArrayList<>(map.values());
for (MyCustomObject s : list2) {
Log.i(TAG,"name = "+s.name);
}
Выход
**************** List from HashMap ***************
name = abc
name = xyz
**************** List from HashMap after update ***************
name = temp
name = xyz
**************** List from HashMap ***************
name = abc
name = xyz
Вот если получить список значений из HashMap
возвращение товара не возможно.
Update
мое требование
- Я хочу, чтобы список значений из HashMap, потому что я хочу, чтобы получить доступ к элементам, используя свои позиции
- Я хочу, чтобы сохранить порядок значений
- Если я изменю что-либо в извлеченном списке, тогда он должен отразиться и в HashMap
Пожалуйста, скажите, если любая библиотека третьей стороны предоставлять такую структуру данных, или, что было бы наилучший подход справиться с этой ситуацией
'List list = new ArrayList <> (map.values ());' Как вы думаете, что делает эта строка? –
Fildor
Это мелкая копия, что именно вы хотите? – Boola
Спойлер: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#ArrayList(java.util.Collection) – Fildor