2017-07-10 23 views
0

次のコードスニペットを使用すると、txtファイルから重複した値を取り出して表示しようとしていますが、必要なすべての値とその重複値;ただし、出力が表示されているときは、1回だけではなく、2回以上の2回以上の値を示します。私は、私が遭遇しているもののより良い視覚化を提供するために出力を添付しました。どんな指導も感謝しています!Groovy:重複した値が複数回表示される

//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

phones.countBy { it }.findAll { it.value > 1 }.each { k, v -> println "Dup: $k: $v times" } 
+0

がそれを手に入れた:それは実際にはワンライナーだのGroovyで

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") } } 

!解明してくれてありがとう! – Rae

関連する問題