как использовать сложение и уменьшение в группировке в kotlin - PullRequest
0 голосов
/ 18 апреля 2020

Я знаю, как использовать reduce and fold операции, но я не понимаю, как использовать его с картой.

 val numbers = listOf("one", "two", "three", "four", "five")
 println(numbers.groupingBy { it.first() }.eachCount())      // Output:- {o=1, t=2, f=2}

группировка возвращает карту. Итак, мне нужно выяснить, как использовать сложение и уменьшение с помощью kotlin Map.

Любой пример в порядке. Мне просто нужно использовать уменьшить и сложить с группировкой в ​​kotlin.

1 Ответ

1 голос
/ 18 апреля 2020

Я серьезно никогда не использовал это в своем проекте. Вы можете понять код ниже.

it % 5 дает различные значения остатка 0,1,2,3,4
т.е. 5%5 = 0 ; 5%6 = 1; 5%7= 2; 5%8 = 3; 5%9 = 4; 5%5 = 0

val numb = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
    val nmap = numb.groupingBy { it % 5 }
    println(nmap.eachCount())
    println("map =  ${nmap.reduce { key, accumulator, element ->
        println("$key ($accumulator,$element)")
        accumulator + element
    }}")

Выход

{1=4, 2=4, 3=4, 4=4, 0=4}
1 (1,6)
2 (2,7)
3 (3,8)
4 (4,9)
0 (5,10)  ---> 5 +
1 (7,11)
2 (9,12)
3 (11,13)
4 (13,14)
0 (15,15)  ----> 5 + 15 +
1 (18,16)
2 (21,17)
3 (24,18)
4 (27,19)
0 (30,20) -----> 5 + 15 + 30

map =  {1=34, 2=38, 3=42, 4=46, 0=50}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...