我正在尝试通过groovy从txt文件中检索并显示重复值,当我使用以下代码片段时,我能够检索所需的所有值及其重复值;但是,当显示输出时,它会显示两次以上出现两次以上而不是一次的任何值。我附加了输出,以便更好地显示我遇到的情况。任何指导表示赞赏!
//Find and display duplicate values
Set<String> store = new HashSet<>()
for (String num : phones){
if (!store.add(num)){
println("Duplicate Number: " + num + " : " + phones.count(num) + " instances")
}
}
Output:
Duplicate Number: 567-567-5678 : 3 instances
Duplicate Number: 877-898-8767 : 4 instances
Duplicate Number: 877-898-8767 : 4 instances
Duplicate Number: 789-987-7890 : 2 instances
Duplicate Number: 567-567-5678 : 3 instances
Duplicate Number: 456-567-8907 : 2 instances
Duplicate Number: 877-898-8767 : 4 instances
答案 0 :(得分:0)
只有在第一次添加号码时才能打印出来:
Set<String> store = new HashSet<>()
for (String num : phones){
def count = phones.count(num)
if (store.add(num) && count > 1) {
println("Duplicate Number: " + num + " : " + count + " instances")
}
}
使用Groovy,它实际上是一个单行:
phones.countBy { it }.findAll { it.value > 1 }.each { k, v -> println "Dup: $k: $v times" }