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

Самый лучший последний, так как позволяет избежать NullPointerException.
 
Последний вариант проверяет - есть ли такой параметр вообще или я чего то не понимаю?

Последний
Я думаю мне лучше сейчас юзать короткий вариант, т.к я использую сейчас в if() его.
 
Я думаю мне лучше сейчас юзать короткий вариант, т.к я использую сейчас в if() его.
Если увеличиваемое число будет отсутствовать в таблице, то вылетит NPE, так что лучше использовать последний вариант. В идеале его нужно реализовать в виде отдельного метода.
 
Если увеличиваемое число будет отсутствовать в таблице, то вылетит NPE, так что лучше использовать последний вариант. В идеале его нужно реализовать в виде отдельного метода.
Тогда мне нужно создавать много методов - бред.
Пока сделаю второй вариант, посмотрим что да как выйдет.
 
Сделал метод для увеличения числа в таблице на единицу. Возвращает новое число.
Java:
public static <R, C> int incrementValue(Table<R, C, Integer> table, R row, C column)
    {
        Integer number = table.get(row, column);
        number = number == null ? 1 : number + 1;
        table.put(row, column, number);
        return number;
    }
Использовать так:
Java:
incrementValue(table, "Петя", "case");
 
Тогда мне нужно создавать много методов - бред.
Пока сделаю второй вариант, посмотрим что да как выйдет.
Ваш подход означает, что в мире станет одним глючным плагином больше. Если есть возможность избежать потенциальной ошибки, то лучше это сделать.
 
Ваш подход означает, что в мире станет одним глючным плагином больше. Если есть возможность избежать потенциальной ошибки, то лучше это сделать.
Сделал метод для увеличения числа в таблице на единицу. Возвращает новое число.
Java:
public static <R, C> int incrementValue(Table<R, C, Integer> table, R row, C column)
    {
        Integer number = table.get(row, column);
        number = number == null ? 1 : number + 1;
        table.put(row, column, number);
        return number;
    }
Использовать так:
Java:
incrementValue(table, "Петя", "case");

А если я захочу очистить петины еденицы?
 
Я создаю hashmap ...
Дальше хочу создать put
Main.perks.put(p.getName(), "case", число);
Как сделать чтобы сюда вписывалось число?
Элементарно.
HashMap<String, HashMap<?, ?>> map = new HashMap<String, HashMap<?, ?>>();
HashMap<String, Integer> map2 = new HashMap<String, Integer>();
map2.put("case", 10);
map.put(p, map2);
 
Тут решение без сторонних библиотек.
Сомневаюсь, что в данном случае стоит считать Guava сторонней библиотекой, ведь она уже есть в ядре => лучше не городить свои костыли, а применить удобное проверенное решение.
 
Сомневаюсь, что в данном случае стоит считать Guava сторонней библиотекой, ведь она уже есть в ядре => лучше не городить свои костыли, а применить удобное проверенное решение.
А чем это не удобное и не проверенное? И так можно хранить любое число мап.
 
А чем это не удобное и не проверенное? И так можно хранить любое число мам.
В вашем случае ТС'у придётся вручную контролировать работу с этими мапами, а так как знания Java у него посредственные, то вероятность сделать ошибку сильно возрастает. При использовании же Table можно просто вызывать готовые методы.
 
И только я пользуюсь классами для хранения мультизначений?:D
Java:
public class Meta {
    private final String type;
    private int value;
    private boolean isNecessary;
    public Meta(String type, int value, boolean isNecessary) {
        this.type = type;
        this.value = value;
        this.isNecessary = isNecessary;
    }
    //ну и дальше инкапсуляции и нужные мне методы
}

Java:
private final HashMap<String, Meta> metas = new HashMap<>();
 
И только я пользуюсь классами для хранения мультизначений?:D
Java:
public class Meta {
    private final String type;
    private int value;
    private boolean isNecessary;
    public Meta(String type, int value, boolean isNecessary) {
        this.type = type;
        this.value = value;
        this.isNecessary = isNecessary;
    }
    //ну и дальше инкапсуляции и нужные мне методы
}

Java:
private final HashMap<String, Meta> metas = new HashMap<>();
Не только ты, но тс не осилил банальную мапу. Думаешь это он осилит?
 
И только я пользуюсь классами для хранения мультизначений?:D
Java:
public class Meta {
    private final String type;
    private int value;
    private boolean isNecessary;
    public Meta(String type, int value, boolean isNecessary) {
        this.type = type;
        this.value = value;
        this.isNecessary = isNecessary;
    }
    //ну и дальше инкапсуляции и нужные мне методы
}

Java:
private final HashMap<String, Meta> metas = new HashMap<>();
Не только. Я, например, тоже пользуюсь. И удобнее, и производительность выше.
 
Не только. Я, например, тоже пользуюсь. И удобнее, и производительность выше.
Ну на счёт производительности я сомневаюсь (только давайте без замеров затрат наносекунд), но это точно удобнее.
Не только ты, но тс не осилил банальную мапу. Думаешь это он осилит?
Имхо, это изич. В конце концов, java это ООП, а не процедурный яп.
 
Назад
Верх