【问题标题】:Attempting to figure out the number of duplicate strings in a string array试图找出字符串数组中重复字符串的数量
【发布时间】:2019-08-09 08:29:42
【问题描述】:

Here is my code

我研究了如何查找字符串数组中有多少个重复的字符串。我想我已经正确地做到了,但我使用的方法要求我返回一个字符串值,但它不会让我返回该值。简而言之,我试图找到大多数“食物中毒”患者最近吃过的食物。 “常见食物”需要重复 5 次时数组中的值。有什么建议?

【问题讨论】:

  • 研究局部变量的作用域。
  • 在此处添加您的代码,而不是截图
  • 价值是什么意思?您是否试图找出“普通食物”被吃过多少次并想要返回此计数的值?

标签: java arrays string return


【解决方案1】:

您可以使用strems 查找数组中最常见的元素

import java.util.Comparator;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

    public static void main(String[] args) {

        String[] data = {"A", "A", "A", "B", "B", "C"};

        Map.Entry<String, Long> entry = Stream.of(data)
                .collect(Collectors.groupingBy(w -> w, Collectors.counting()))
                .entrySet()
                .stream()
                .max(Comparator.comparing(Map.Entry::getValue))
                .orElse(null);

        if (entry != null) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }
    }
}

【讨论】:

    【解决方案2】:

    在这些情况下,您可以使用地图进行优化和可用性。

    下面是你的方法。我没有写完所有数据。

    我创建了一个食物地图。

    static String mostCommonFood() {
        String data[] = {"a","b"};
        Map<String, Integer> foodMap = new HashMap<>();
    
        for (String val : data) {
            if (foodMap.containsKey(val)) {
                foodMap.put(val, foodMap.get(val)+1);
            } else {
                foodMap.put(val, 1);
            }
        }
        String mostCommonFood = "";
        int mostCommonFoodValue = 0;
        for(Map.Entry<String, Integer> foods : foodMap.entrySet()) {
            if(foods.getValue() > mostCommonFoodValue) {
                mostCommonFoodValue = foods.getValue();
                mostCommonFood = foods.getKey();
            }
        }
        return mostCommonFood;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2017-08-26
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多