我如何计算java中Array中重复的字符串?

时间:2016-03-12 07:50:10

标签: java

我想计算java中String Array中重复多个字符串的字符串。一种方法是找到像那样的字符串

String[] Array=new String[10];
String find;
System.out.print("Enter Strings for Array: ");

for(int i=0;i<Array.length;i++ ) {
    Array[i]=input.next();
}

System.out.print("Enter String to find");
find=input.next();

for(int i=0;i<Array.length;i++) {
    if(find.equals(Array[i]) {
        System.out.print("Found!");
    else
        System.out.print("Not Found!");
    }
}

但是我想通过一个循环搜索重复的字符串并找到重复的字符串本身而不需要用户输入来查找。

1 个答案:

答案 0 :(得分:0)

第一个问题,您的代码将无法编译。您为if语句打开了一个块,但在else语句之前不要关闭它。

根据您的帖子,您似乎想要数组中的单词计数。但是,您的代码建议您尝试查找数组中是否存在字符串。我猜它是前者,然后继续。 可以使用Map在O(n)中完成,而不是O(n * n)方法。

String[] arr = {"ab","c","d","e","ab"};
Map<String, Integer> map = new HashMap<String, Integer>();

for(String word: arr) {
    // if word is not in the map
    if(!map.containsKey(word))
        map.put(word, 0);
    map.put(word, map.get(word) + 1);
}

for(String word: map.keySet()) 
    System.out.println(word + " occurs " + map.get(word) + " times");