试图找出字符串数组中重复字符串的数量

问题描述 投票:-1回答:2

Here is my code

我研究过如何找到字符串数组中有多少重复的字符串。我想我已经正确地完成了这个,但我正在使用的方法要求我返回一个字符串值,但它不会让我返回值。简而言之,我正在努力寻找大多数患有“食物中毒”的食物最近吃过的食物。当它被重复5次时,“常见食物”需要是阵列中的值。有什么建议?

java arrays string return
2个回答
0
投票

您可以使用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());
        }
    }
}

0
投票

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

以下是您的方法。我没有写所有数据。

我创建了一个fodMap。

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.