我希望我的代码能够从包含重复项的现有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对象。事情现在按预期工作了!
答案 0 :(得分:5)
查看[]
功能,它会为您完成所有这些!
distinct()
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct.html
答案 1 :(得分:1)
您可以将数组列表转换为设置。
Set<String> foo = new HashSet<String>(pinyinArrayList);