gpt4 book ai didi

java - 在 ArrayList 中创建唯一项的 ArrayList

转载 作者:行者123 更新时间:2023-11-29 06:52:08 26 4
gpt4 key购买 nike

我希望我的代码从包含重复项的现有 ArrayList (pinyinArrayList) 创建一个唯一项的 ArrayList (uniquePinyinArrayList)。

“println”命令不执行(我认为当在 uniquePinyinArrayList 中找到来自 pinyinArrayList 的副本时它们应该执行)

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。为了解决这个问题,我在这个循环之外为 uniquePinyin 创建了一个 ArrayList 对象。现在一切正常!

最佳答案

查看 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

关于java - 在 ArrayList 中创建唯一项的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com