Groovy web console

subscribe to the feed Subscribe
to this
site

Using Map

Published 2 months ago by Anonymous with tags Map List
Actions  ➤ Edit in console Back to console Show/hide line numbers View recent scripts
/*** Найти количество появлений отдельного элемента в списке ***/

def list = [1, 2, 5, 3, 1, 4, 15, 2, 4, 8, 7, 
 2, 1, 6, 8, 11, 15, 9, 8, 9, 1, 12, 4,
 10, 5, 3, 13, 14, 1, 2, 10, 12]

def statMap = [:] //Создаём пустой Map
//def stat = new HashMap() //Или так

for (elt in list) {
  //Получаем из Map текущее значение счётчика для данного
  //элемента или 0, если такого элемента в статистике пока нет
  def cnt = statMap.get(elt, 0)
  cnt = cnt + 1 //Добавляем 1 к счётчику
  statMap[elt] = cnt //Запоминаем изменённый счётчик для данного элемента
}

//Выводим весь Map как есть:
println statMap

//Выводим отсортированные элементы по-отдельности.
//Получаем всё множество ключей, сортируем, 
//и выводим каждую пару ключ-значение на отдельной строке:
statMap.keySet().sort().each { key ->
  def value = statMap[key]
  println "$key -> $value"
}

println "OK"