2017-01-06 3 views
0

У меня есть карта, в которой эти три клавиши будут присутствовать:установить логическую переменную основу на многократным ключа проверки на карте

Map<String, String> holder = new HashMap<>(); 
holder.put("abc", "qwer"); 
holder.put("pqr", "dsds"); 
holder.put("def", "jghghg"); 
// data for some other keys 

Вот что мне нужно сделать:

  • Если ключ abc и pqr оба нет и только def key присутствует, тогда я хочу назначить true для логической переменной other. Я установлю как false.

Так что я сделал что-то подобное, но это не сработало. Похоже, моя логика как-то не так.

boolean flag = !(holder.containsKey("abc") || holder.containsKey("pqr")); 
+1

Где ** и ** часть? Также в вашем описании написано «** и **», но ваш код «' '' '' '(« или »). –

+1

Просто замените '||' '&&', как вы хотите ** оба ** из них, чтобы они не присутствовали! – user2004685

+1

@ PM77-1: '! (A || b) == (! A &&! B)' –

ответ

3

Буквальный перевод с того, что вы хотели этого сделать. -НЕ содержит «ABC» И-НЕ содержит 'PQR и содержит в себе «Защита»

 
!holder.containsKey("abc") && !holder.containsKey("pqr") && holder.containsKey("def") 
+0

@ user2004685 - Это нормально по моим и стандартам SO. –