求一个集合中出现次数最多的元素

tech2023-01-21  102

求一个集合中出现次数最多的元素
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class Demo { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); List<Integer> list1 = new ArrayList<>(); HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); int count=0; list.add(12); list.add(23); list.add(12); list.add(12); list.add(23); list.add(23); list.add(23); list.add(23); //找出重复的数据加入到list1中 for (int i = 0; i < list.size(); i++) { for (int j = i + 1; j < list.size(); j++) { if (list.get(i).equals(list.get(j))) { list1.add(list.get(i)); break; } } } //统计list1当中出现重复数据的次数,对应放入Map集合 for (Integer li:list1 ) { if (map.containsKey(li)){ count++; map.put(li,map.get(li).intValue()+1); }else { map.put(li,1); } } System.out.println("count="+count); list1.clear(); //迭代Map集合,重复出现数据最多的加入list2当中 Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<Integer, Integer> entry = iterator.next(); if(entry.getValue() == count){ list1.add(entry.getKey()); } System.out.println("key="+entry.getKey()+","+"value="+entry.getValue()); } if (list1.size() > 1) { System.out.println(list1 + "出现的次数一样多,一共出现了:" + (count + 1) + "次"); } if (list1.size() == 1) { System.out.println("出现最多次数的是:" + list1 + ",总共出现了:" + (count + 1) + "次"); } } }

最新回复(0)