Сделайте что-нибудь, если условие true в сборщиках фильтра hashmap java 8 - PullRequest
0 голосов
/ 27 июня 2018

У меня есть карта, в которой ключи являются строкой, а значения - объектом Employee. Похоже, Map, я новичок в Java 8 и на стадии изучения

Map<String, Employee> cond_Map = new LinkedHashMap<String, Employee>();

if(Obj.getEmp == null){
    cond_Map.forEach((key, value) -> {
        if(key == "one"){
            Obj.setEmp(value);
        }
    });
}

Я пытался использовать фильтр, чтобы сделать это в одну строку и просто,

cond_Map.entrySet().stream().filter(key -> Python3Parser.If_stmtContext.class.isInstance(key.getKey())).collect(???);

но это не сработает ..! У кого-нибудь есть идея? Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вам не нужно перебирать карту, чтобы найти запись с соответствующим ключом. Поиск записи по ключу является задачей карты:

if(Obj.getEmp == null && cond_Map.containsKey("one")){
    Obj.setEmp(cond_Map.get("one"));
}
0 голосов
/ 27 июня 2018

вы делаете key == "one" вместо key.equals("one")

другой подход с фильтром.

    if (Obj.getEmp == null)
    {
        cond_Map.entrySet().stream()
           .filter(entry -> "one".equals(entry.getKey())).forEach(entry -> {
            Obj.setEmp(entry.getValue());
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...