Помогите Как записать число в HashMap?

NulledCoder

Участник
Пользователь
Баллы
36
Имя в Minecraft
NulledCoder
Я создаю hashmap ...
Дальше хочу создать put
Main.perks.put(p.getName(), "case", число);
Как сделать чтобы сюда вписывалось число?
 
В HashMap может хранится только 2 объекта, ключ-значение.
 
В HashMap может хранится только 2 объекта, ключ-значение.
Но мне необходимо сделать чтобы с hashmap был
Ник
Кейс
Число (в данном случае) у меня там будут записываться убийства

Вариант создавать два hashmap или что?
 
Java:
Table<String, String, Integer> perks = HashBasedTable.create();
perks.put(p.getName(), "case", число);
Для работы требуется библиотека Google Guava (уже есть в ядре). Если эта библиотека не будет найдена, то нужно подключить её вручную.
 
new HashMap<String, ArrayList<String, Integer>> ();

Это как вариант.
 
Java:
Table<String, String, Integer> perks = HashBasedTable.create();
perks.put(p.getName(), "case", число);
Для работы требуется библиотека Google Guava (уже есть в ядре). Если эта библиотека не будет найдена, то нужно подключить её вручную.

Вот ещё вопрос, но это бред наверное.
Возможно ли сделать переменную индвидидуальную для игрока.

То есть:
Петя убил 2 игрока его записало в переменную int
Вася убил 5 игрока его записало в переменную int

Или лучше реализовывать с hashmap?
 
Вот ещё вопрос, но это бред наверное.
Возможно ли сделать переменную индвидидуальную для игрока.

То есть:
Петя убил 2 игрока его записало в переменную int
Вася убил 5 игрока его записало в переменную int

Или лучше реализовывать с hashmap?
Нужен HashMap или его аналог.
 
Нужен HashMap или его аналог.
Вот и беда не могу понять как с этим работать.
Нужен HashMap или его аналог.
Кстати про эту строку perks.put(p.getName(), "case", 5);
Когда я буду использовать удаление Main.perks.remove(p.getName()); например
как мне удалить число из hashmap
 
Вот и беда не могу понять как с этим работать.
Java:
Map<String, Integer> kills = new HashMap<>();
kills.put("Петя", 2);
kills.put("Вася", 5);
System.out.println(kills.get("Петя")); // Выведет 2
System.out.println(kills.get("Вася")); // Выведет 5
System.out.println(kills.get("Иван")); // Выведет null
 
Java:
Map<String, Integer> kills = new HashMap<>();
kills.put("Петя", 2);
kills.put("Вася", 5);
System.out.println(kills.get("Петя")); // Выведет 2
System.out.println(kills.get("Вася")); // Выведет 5
System.out.println(kills.get("Иван")); // Выведет null

Это понятно, но потом я хочу удалить все значения от пети это сделать?
 
Кстати про эту строку perks.put(p.getName(), "case", 5);
Когда я буду использовать удаление Main.perks.remove(p.getName()); например
как мне удалить число из hashmap
В данном случае используется Table, а не HashMap. HashMap для двух элементов, а Table для трёх.
Удалять так:
Java:
perks.remove(p.getName(), "case");
 
В данном случае используется Table, а не HashMap. HashMap для двух элементов, а Table для трёх.
Удалять так:
Java:
perks.remove(p.getName(), "case");
То есть если я буду вписывать в код это perks.remove(p.getName(), "case"); то он удалит мои цифры + использовать table
 
То есть если я буду вписывать в код это perks.remove(p.getName(), "case"); то он удалит мои цифры + использовать table
Да, будут удалены числа case для указанного игрока. Если будут храниться и другие числа, то можно сделать так:
Java:
Table<String, String, Integer> perks = HashBasedTable.create();
perks.put("Петя", "case", 1);
perks.put("Петя", "blocks", 5);
perks.put("Петя", "kills", 62);
perks.remove("Петя", "case"); // Это удалит только case
perks.rowMap().remove("Петя"); // Это удалит и case, и blocks, и kills
 
Да, будут удалены числа case для указанного игрока. Если будут храниться и другие числа, то можно сделать так:
Java:
Table<String, String, Integer> perks = HashBasedTable.create();
perks.put("Петя", "case", 1);
perks.put("Петя", "blocks", 5);
perks.put("Петя", "kills", 62);
perks.remove("Петя", "case"); // Это удалит только case
perks.rowMap().remove("Петя"); // Это удалит и case, и blocks, и kills


сейчас я хочу получить hashmap get()
perks.get(p.getName(), "free", 5) - с цифрой он пишет ошибку,
если так perks.get(p.getName(), "free") - то норм
 
сейчас я хочу получить hashmap get()
perks.get(p.getName(), "free", 5) - с цифрой он пишет ошибку,
если так perks.get(p.getName(), "free") - то норм
Java:
perks.put(p.getName(), "free", 5);
perks.put(p.getName(), "free", 10);
perks.get(p.getName(), "free"); // Вернёт 10
perks.get(p.getName(), "free", 5); // Ошибка
 
Java:
perks.put(p.getName(), "free", 5);
perks.put(p.getName(), "free", 10);
perks.get(p.getName(), "free"); // Вернёт 10
perks.get(p.getName(), "free", 5); // Ошибка

Понял спасибо и последний вопрос (не проверял)
Если я сделаю строку так perks.put(p.getName(), "free", +1); [то он должно с 0 прибавлять по +1) верно?
 
Понял спасибо и последний вопрос (не проверял)
Если я сделаю строку так perks.put(p.getName(), "free", +1); [то он должно с 0 прибавлять по +1) верно?
Чтобы прибавить, нужно сделать так:
Java:
perks.put(p.getName(), "free", 12); // Сейчас записано 12

// Длинный вариант
int number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number + 1); // Теперь записано 13

// Короткий вариант
perks.put(p.getName(), "free", perks.get(p.getName(), "free")+ 1); // Теперь записано 14

// Правильный вариант
Integer number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number == null ? 1 : number + 1); // Теперь записано 15
 
Чтобы прибавить, нужно сделать так:
Java:
perks.put(p.getName(), "free", 12); // Сейчас записано 12

// Длинный вариант
int number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number + 1); // Теперь записано 13

// Короткий вариант
perks.put(p.getName(), "free", perks.get(p.getName(), "free")+ 1); // Теперь записано 14

// Правильный вариант
Integer number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number == null ? 1 : number + 1); // Теперь записано 15

И смысл в вариантах? И какой лучше?
 
Чтобы прибавить, нужно сделать так:
Java:
perks.put(p.getName(), "free", 12); // Сейчас записано 12

// Длинный вариант
int number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number + 1); // Теперь записано 13

// Короткий вариант
perks.put(p.getName(), "free", perks.get(p.getName(), "free")+ 1); // Теперь записано 14

// Правильный вариант
Integer number = perks.get(p.getName(), "free");
perks.put(p.getName(), "free", number == null ? 1 : number + 1); // Теперь записано 15
Последний вариант проверяет - есть ли такой параметр вообще или я чего то не понимаю?
И смысл в вариантах? И какой лучше?
Последний
 
Назад
Верх