Как посчитать количество вхождений элемента в список - PullRequest
155 голосов
/ 03 февраля 2009

У меня есть ArrayList, класс коллекции Java, следующий:

ArrayList<String> animals = new ArrayList<String>();
animals.add("bat");
animals.add("owl");
animals.add("bat");
animals.add("bat");

Как видите, animals ArrayList состоит из 3 bat элементов и одного owl элемента. Мне было интересно, есть ли какой-либо API в платформе Collection, который возвращает количество bat вхождений или есть другой способ определить количество вхождений.

Я обнаружил, что в Google Collection Multiset действительно есть API, который возвращает общее количество вхождений элемента. Но это совместимо только с JDK 1.5. Наш продукт в настоящее время находится в JDK 1.6, поэтому я не могу его использовать.

Ответы [ 21 ]

0 голосов
/ 08 октября 2014
List<String> lst = new ArrayList<String>();

lst.add("Ram");
lst.add("Ram");
lst.add("Shiv");
lst.add("Boss");

Map<String, Integer> mp = new HashMap<String, Integer>();

for (String string : lst) {

    if(mp.keySet().contains(string))
    {
        mp.put(string, mp.get(string)+1);

    }else
    {
        mp.put(string, 1);
    }
}

System.out.println("=mp="+mp);

Выход:

=mp= {Ram=2, Boss=1, Shiv=1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...