Хранить массив в HashMap
Я новичок в Java. Как я могу хранить массив значений целых чисел в HashMap, после этого я пишу этот HashMap в txt файле, но в данный момент это не важно. Я могу хранить отдельные поля, но не массив. Есть идеи?
public void salveazaObiectulCreat(String caleSpreFisier) {
HashMap map = new HashMap();
map.put ("Autorul",numelePrenumeleAutorului);
map.put ("Denumirea cartii",denumireaCartii);
map.put ("Culoarea cartii",culoareaCartii);
map.put ("Genul cartii",gen);
map.put ("Limba",limba);
map.put ("Numarul de copii",numarulDeCopii);
map.put ("Numarul de pagini",numarulDePagini);
map.put ("Pretul cartii",pretulCartii);
try {
File file = new File(caleSpreFisier);
FileOutputStream f = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(map);
s.close();
} catch(Exception e){
System.out.println("An exception has occured");
}
}
Ответы
Ответ 1
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
HashMap<String, int[]> map = new HashMap<String, int[]>();
выберите один, например
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
map.put("Something", new ArrayList<Integer>());
for (int i=0;i<numarulDeCopii; i++) {
map.get("Something").add(coeficientUzura[i]);
}
или просто
HashMap<String, int[]> map = new HashMap<String, int[]>();
map.put("Something", coeficientUzura);
Ответ 2
Не уверен в точном вопросе, но это то, что вы ищете?
public class TestRun
{
public static void main(String [] args)
{
Map<String, Integer[]> prices = new HashMap<String, Integer[]>();
prices.put("milk", new Integer[] {1, 3, 2});
prices.put("eggs", new Integer[] {1, 1, 2});
}
}
Ответ 3
Да, интерфейс карты позволит вам хранить массивы как значения. Вот очень простой пример:
int[] val = {1, 2, 3};
Map<String, int[]> map = new HashMap<String, int[]>();
map.put("KEY1", val);
Кроме того, в зависимости от вашего варианта использования вы можете посмотреть Multimap поддержку, предлагаемую guava.
Ответ 4
Если вы хотите сохранить несколько значений для ключа (если я правильно вас понимаю), вы можете попробовать MultiHashMap (доступно в различные библиотеки, а не только коллективные коллекции).
Ответ 5
Ваша жизнь будет намного проще, если вы можете сохранить список как значение вместо массива на этой карте.
Ответ 6
Вы можете хранить объекты в HashMap.
HashMap<String, Object> map = new HashMap<String, Object>();
Вам просто нужно отбросить его правильно.