我希望我的代码从包含重复项的现有ArrayList(pinyinArrayList)创建一个独特项的ArrayList(uniquePinyinArrayList).
"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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过了
if (uniquePinyinArrayList.contains(currentPinyin)){
Run Code Online (Sandbox Code Playgroud)
,虽然这也行不通.
编辑:这个方法实际上是从我的源词列表中为每个单词运行的,因此创建了多个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]
}
Run Code Online (Sandbox Code Playgroud)
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct.html
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |