java - 从数组中删除唯一值

标签 java arrays groovy

示例数组:[1,2,3,4,4,5,6,7,12,13,7,4]

我只想保留具有多个的值。因此我期望的最终结果是 [4,4,4,7,7]

我可以按如下方式找到重复项。但我怎样才能扭转这个局面呢?任何指导表示赞赏。谢谢。

for (int i = 0; i < names.length; i++) { 
    for (int j = i + 1; j < names.length; j++) { 
        if (names[i].equals(names[j]) ) { 
            // got the duplicate element 
        } 
    } 
}

最佳答案

您可以在 Groovy 中执行此操作:

def result = names.countBy { it }
                  .findAll { k, v -> v > 1 }
                  .collect { k, v -> [k] * v }
                  .flatten()

或者

def result = names - names.countBy { it }.findAll { k, v -> v == 1 }.keySet()

关于java - 从数组中删除唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471276/

相关文章:

java - getter 和 setter 从数组中获取值

java - 我在添加关键监听器时犯了什么错误?

java - 在数组中的特定索引处插入

groovy - 如何阻止.@运算符?

java - 我的 applicationContext 中是否可以有多个 PropertyPlaceHolderConfigurer?

javascript - Java套接字io未知传输未定义

javascript - 按 [未知整数] 组遍历数组

Android - 从 db 创建一个可绘制对象数组

java - Groovy 方法 isSynthetic 对于 run 和 main 为 false

java - GroovyClassLoader - 与父类加载器隔离