我研究了如何查找字符串数组中有多少重复的字符串。我认为我已正确完成了此操作,但是我使用的方法要求我返回一个字符串值,但它不会让我返回该值。简而言之,我试图找到大多数患有“食物中毒”的患者最近食用的食物。当重复5次时,“常见食物”必须是数组中的值。有什么建议么?
答案 0 :(得分: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());
}
}
}
答案 1 :(得分:0)
在这种情况下,您可以将地图用于优化和可用性。
下面是您的方法。我没有写所有数据。
我创建了一个foodMap。
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;
}