2017-02-07 2 views
1

Я добавляю следующее коллекции HashMap после каждой строки в виде пользовательского интерфейсаJava Collections

Декларация

Map<String, List<String>> map = new HashMap<String, List<String>>(); 

List<String> valSetOne = new ArrayList<String>(); 

фрагмент кода

valSetOne.add("BMW"); 
    valSetOne.add("Audi"); 
    map.put("A1", valSetOne); 

Когда я во второй строке UI, я бы хотел проверить вышеуказанную комбинацию в коллекции HashMap.

Как я могу проверить комбинацию значений в каждой строке?

+0

Используйте метод 'containsValue()'? – Kayaman

+0

@ Kayaman Does содержит проверку всей строки? – user75ponic

+0

У вас нет строк. У вас есть «Карта» списков. Если вы вызываете 'containsValue (myList)', он проверяет, содержится ли 'myList' в пределах значений. – Kayaman

ответ

3

Если вам нужна производительность относительно проверки, если значение существует и не заботятся о порядке в каждой строке, вы можно использовать интерфейс Set и использовать HashSet вместо List

Map<String, Set<String>> map = new HashMap<String, Set<String>>(); 

Set<String> valSetOne = new HashSet<String>(); 

Для проверки используйте

Set<String> set= map.get("A1");//returns null if key does not exists(you also use containsKey() to check if key exists) 
set.contains("value") 

Если вам не нужна производительность, вы можете использовать только

List<String> valSetOne = new ArrayList<String>(); 
List<String> list = map.get("A1");//returns null if key does not exists(you also use containsKey() to check if key exists) 
list .contains("value") to check if it exists 
+0

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

+0

О да, я получил вашу точку зрения, для ключа A1 комбинация Orange и Apple существует или не правильная? – user75ponic

+0

есть. вам нужно запустить цикл, чтобы проверить, существует ли апельсин, а также яблоко, для A1 –

2

В зависимости от того, что вы хотели бы проверить на наличие, существует два метода карты: containsKey и contiansValue.

необходимо проверить, есть ли ключ A1? -> использовать containsKey

необходимости проверить есть список с Orange и Apple использованием ->containsValue

+0

Спасибо и высоко оценили. – user75ponic

Смежные вопросы