java - 如何使用Java查找数组中不同重复值的数量

标签 java arrays duplicates words

我正在处理的程序有一个小问题,我需要能够查看 Java 中的数组并找到该数组中不同重复项的数量,例如,如果数组的值为 4、6, 4 我需要能够显示:

有: 2 个长度为 1 的字(4 个字符) 1 个长度为 2 的单词(6 个字符)

我目前拥有的是 -

public class wordLength {

public static void main(String[] args) {

    String userInput1 = "Owen Bishop Java ";
    String [] inputArray = userInput1.split(" ");


    for (int i = 0; i < inputArray.length; i++) {
        int length = inputArray[i].length(); 
        int inputArray2 = length;
        System.out.println(inputArray2);        
    }
}

}

目前,只要有空格,就会将字符串分割成一个数组,然后查找并打印数组中每个单词的长度,我需要显示相同长度的单词数量。
我对 Java 非常陌生,并且意识到这可能是一个非常简单的问题,但我们将非常感谢任何帮助,谢谢。

最佳答案

在不编写整个内容(或使用第 3 方库 - 我注意到您是 Java 新手,所以我们不要让事情复杂化)的情况下,我会考虑以下内容。

利用Map<Integer,Integer>它将存储特定长度的单词数。例如填充:

Map<Integer, Integer> counts = new HashMap<Integer, Integer>();    
for (String word : words) {
    Integer current = counts.get(word.length());
    if (current == null) {
       current = 0;
    }
    current++;
    counts.put(word.length(), current);   
}

然后迭代它以输出每个字数的字数。请注意,上面使用了 boxing .

使用 Map 的优势是这样的(与你的数组不同)你不需要担心空计数(例如,如果你没有长度为 5 的单词,你将不会有一个条目)。根据您的用例,这可能/可能不是问题。

关于java - 如何使用Java查找数组中不同重复值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21683747/

相关文章:

sql-server - 防止在更改一列时将记录复制回源表的多次执行中出现重复

java - Clojure 中的 "long... numbers"参数相当于什么?

java - 如何计算大于平均数的百分比?

ios - 删除结果类型数组( Realm 类型)的元素

doctrine-orm - Doctrine 2 重复检测

r - 根据 R 中的标准对数据框进行重复数据删除?

java - 使用 Apache poi 设置边距

java - 如何在 Android 应用程序中在 TextView 中随机分配 int[] 的每个数字一次

java - 在同一个 osgi 包中可以有两个服务接口(interface)吗?

c - 如何将长度为用户输入的数组大小?