Создание ArrayList уникальных элементов в ArrayList

Я хотел бы, чтобы мой код создал ArrayList (uniquePinyinArrayList) уникальных элементов из существующего ArrayList (pinyinArrayList), который содержит дубликаты.

Команды «println» не выполняются (я думаю, что они должны делать, когда дубликат из pinyinArrayList находится в uniquePinyinArrayList)

fun uniquePinyinArray(pinyinArrayList: ArrayList<String>) { val uniquePinyinArrayList = ArrayList<String>() for(currentPinyin in pinyinArrayList){ if (currentPinyin in uniquePinyinArrayList){ // do nothing println("already contained"+currentPinyin) println("uniquePinyin"+uniquePinyinArrayList) } else { uniquePinyinArrayList.add(currentPinyin) } } } 

Я также пробовал

 if (uniquePinyinArrayList.contains(currentPinyin)){ 

, хотя это тоже не сработало.

Изменить: этот метод фактически запускается для каждого слова из моего списка исходных слов, и, следовательно, создаются несколько ArrayLists. Чтобы исправить это, я создал единственный объект ArrayList для uniquePinyin за пределами этого цикла. Сейчас все работает так, как ожидалось!

Проверьте функцию distinct() , она сделает все это для вас!

 fun main(args: Array<String>) { val listOfThings = listOf("A", "B", "C", "A", "B", "C") val distinctThings = listOfThings.distinct() println(listOfThings) // [A, B, C, A, B, C] println(distinctThings) // [A, B, C] } 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct.html

Вы можете преобразовать список массивов в набор.

  Set<String> foo = new HashSet<String>(pinyinArrayList); 
Intereting Posts
Проблемы с доступом к сопутствующему объекту Kotlin в Groovy? Объявление пользовательской «чистой» задачи при использовании стандартных плагинов жизненного цикла Gradle запрещено Как получить различную реализацию функции верхнего уровня в Unit и InstrumentTests для Android Как буферизировать бесконечный прослушиватель прокрутки Обработка событий click в android kotlin: setOnClickListener работает только при двойном щелчке В Kotlin, как я могу обойти конфликты наследуемых объявлений, когда класс enum реализует интерфейс? Kotlin: Внутренний масштаб – этот почему я не могу использовать lambda для интерфейса в kotlin? RX java / Android Как достичь этого тоста на каждом клике с помощью оператора debounce Используя начальное значение наблюдаемого в подписке вместе с отображаемым В Kotlin, как передать параметр, чтобы асинхронная область сохранила его? Проблема с Kotlin после Android Studio была обновлена ​​до 0,6 Равная перегрузка в Котлине Как создать кеширование / горячую версию rx.Single? Как зарегистрировать InstanceCreator с Gson в Котлине?