2014-02-20 3 views
-7

У меня есть карта с ключами как A1, A2, A3, B1, есть способ узнать, сколько у меня A, я должен вернуть мне 3.Как подсчитать количество ключей на карте

+0

Можете ли вы разместить код? –

+0

У меня есть карта, заполненная утилитой, которая содержит уровни доступа. Скажем A1, A2, A3. иногда он может иметь один, два или любой. Как узнать, сколько уровней доступа (A) есть в качестве ключей? –

+2

Java, пожалуйста, мы не можем скомпилировать английский язык. –

ответ

2

Плохо Выражаясь вопрос, но если значения у вас есть в качестве ключей (A1, A2, и т.д. ...) являются строки, и вы хотите, чтобы проверить по первой букве ключа, вы можете попробовать что-то вроде этого:

int count = 0; 
    for (String k : myMap.keySet()){ 
     if(k.startsWith("A")){ 
      count++; 
     } 
    } 
+0

Это трюк, но есть ли лучший способ без цикла, например, сортировка регулярных выражений? –

+0

um, почему downvote? –

+0

downvote? не получил этого ... –

0

вы можете использовать следующие в методе:

Map yourMap; 
count i=0; 
Iterator it = yourMap.entrySet().iterator(); 
while (it.hasNext()) { 
    Map.Entry pairs = (Map.Entry)it.next(); 
    if((pairs.getKey()).contains("A")) i++; 
} 
return i; 

Edit: Я до сих пор не уверен, если вы хотите, чтобы проверить, содержит ли ключ или начинается с «А», но используя следующее условие вместо будет работать, чтобы проверить, ключ начинается с «А»:

if((pairs.getKey()).startsWith("A")) i++; 
+0

Я бы, вероятно, сохранил счетчик, поскольку элементы добавляются на карту, так что вам не нужно перебирать всю карту, чтобы получить ответ – cosjav

+0

, но содержит совпадающие точные строки, поэтому это не сработает, потому что я говорю A1, A2 и A3 –

+0

У меня нет контроля над заполнением карты, я получаю ее из другой системы –

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