Как я могу сделать определенную сортировку, используя Kotlin? - PullRequest
1 голос
/ 09 марта 2019

У меня есть этот ArrayList в Kotlin:

a = ArrayList<String>()
a.add("eat")
a.add("animal")
a.add("internet")

И я хотел бы отсортировать элементы моего ArrayList по частоте "e", например, я хотел бы иметь новый ArrayList, такой как:

a[0] = "animal" // there is no e in animal
a[1] = "eat" // there is one e in animal
a[2] = "internet" // there is two e in internet

Я думал использовать Collections.sort (a), но, как и мой сорт, он не работает ...

У вас есть идеи?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 09 марта 2019

Вы также можете сделать это без преобразования каждого String в CharArray сначала (как в принятом в настоящее время ответе), что я не знаю, почему вы бы сделали:

a.sortBy { it.count { it == 'e' } }

Плюс, вы можете назвать nested it s:

a.sortBy { word -> word.count { character -> character == 'e' } }
2 голосов
/ 09 марта 2019

Запись на моем телефоне, поэтому синтаксис может быть не совсем правильным, но что-то вроде:

a.sortBy { it.toCharArray().count { it == 'e' } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...