您的位置:首页 > 教育 > 培训 > 和卫通app下载_网站的类型有哪些_百度明星人气榜_百度图片搜索

和卫通app下载_网站的类型有哪些_百度明星人气榜_百度图片搜索

2025/2/25 13:47:27 来源:https://blog.csdn.net/qq_44749121/article/details/145824513  浏览:    关键词:和卫通app下载_网站的类型有哪些_百度明星人气榜_百度图片搜索
和卫通app下载_网站的类型有哪些_百度明星人气榜_百度图片搜索

无聊自己出一些算法题,方便日后工作使用。
在这里插入图片描述

题目:

有10个集合,每个集合里有一百个一百以内的随机数字。然后要统计这10个集合中出现次数最多的那个数字,并且按重复次数对这10个集合进行排序。

步骤:

  1. 生成10个集合,每个集合包含100个0到99或1到100的随机数。

  2. 统计这10个集合中所有数字的出现次数,找到出现次数最多的那个数字。例如,将所有集合中的数字合并到一个总的统计中,然后找出出现次数最多的那个数字。

  3. 然后,针对这10个集合中的每一个,统计该数字在每个集合中的出现次数。根据这个次数对这10个集合进行排序。

代码实现:

import java.util.*;public class Main {public static void main(String[] args) {// 生成10个包含100个随机数的集合List<List<Integer>> lists = generateLists();// 统计所有数字的总出现次数Map<Integer, Integer> totalCounts = getTotalCounts(lists);// 找出出现次数最多的数字int maxNumber = findMaxNumber(totalCounts);System.out.println("出现次数最多的数字: " + maxNumber);// 根据该数字的出现次数对集合进行排序sortListsByCount(lists, maxNumber);// 输出排序结果System.out.println("\n排序后的集合(按出现次数降序):");for (List<Integer> list : lists) {int count = Collections.frequency(list, maxNumber);System.out.println("出现次数: " + count + ", 集合: " + list);}}// 生成10个集合,每个集合100个0-99的随机数private static List<List<Integer>> generateLists() {Random random = new Random();List<List<Integer>> lists = new ArrayList<>();for (int i = 0; i < 10; i++) {List<Integer> list = new ArrayList<>();for (int j = 0; j < 100; j++) {list.add(random.nextInt(100));}lists.add(list);}return lists;}// 统计所有数字的总出现次数private static Map<Integer, Integer> getTotalCounts(List<List<Integer>> lists) {Map<Integer, Integer> counts = new HashMap<>();for (List<Integer> list : lists) {for (Integer num : list) {counts.put(num, counts.getOrDefault(num, 0) + 1);}}return counts;}// 找出出现次数最多的数字(次数相同时取数值较大的)private static int findMaxNumber(Map<Integer, Integer> counts) {int maxCount = -1;int maxNumber = -1;for (Map.Entry<Integer, Integer> entry : counts.entrySet()) {if (entry.getValue() > maxCount || (entry.getValue() == maxCount && entry.getKey() > maxNumber)) {maxCount = entry.getValue();maxNumber = entry.getKey();}}return maxNumber;}// 根据指定数字的出现次数对集合进行降序排序private static void sortListsByCount(List<List<Integer>> lists, final int targetNumber) {lists.sort((list1, list2) -> {int count1 = Collections.frequency(list1, targetNumber);int count2 = Collections.frequency(list2, targetNumber);return Integer.compare(count2, count1); // 降序排列});}
}

代码说明:

1、生成随机集合:使用Random类生成10个集合,每个集合包含100个0-99的随机数。

2、统计总次数:使用HashMap合并统计所有集合中每个数字的出现次数。

3、找出最多数字:遍历统计结果,找到出现次数最多的数字(次数相同时取数值较大的)。

4、排序集合:根据该数字在每个集合中的出现次数,使用自定义比较器对集合进行降序排序。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com