博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题:统计数字出现次数。 随机生成100个数字,数字范围从1到10,统计每个数字出现的次数并打印到控制台。...
阅读量:6963 次
发布时间:2019-06-27

本文共 1527 字,大约阅读时间需要 5 分钟。

 
public static void main(String[] args) {
printCount(getNumList()); } private static ArrayList
list; public static ArrayList
getNumList() {
list = new ArrayList
(); Random r = new Random(); for (int i = 0; i < 100; i++) {
int num = r.nextInt(10) + 1; list.add(num); } return list; } //主体方向思想,从集合中拿出一个数(遍历顺序) i=0时,下标为i的元素会和后面的所有比较,当他们相同时,会把下表为J的元素给换成0,最后遍历到末尾了 //就把下标为i的元素也给他换成0,同时count变量会+1 记录出现次数,count初始值就是1因为下标为i的时候的元素本身就是一个, //for循环的意思如上,for循环内: 如果下标为i的元素是0,那么就跳过本次循环直接进行下一步,那么内循环里就会一直跳一直跳直到i+1, //如果第一个if不满足,那么当下标为1 的数和下标为i+1也就是j的元素相等时,count就要++因为他找到一个和他相同的元素了,处理完把j对应的元素给改成0 //那么这样第二个if的作用也就罗列清楚了,第三个if:就是要打印输出的那一段了,说实话这个打印想起来起来还真的有些烧..., 当j迭代到最后一位数的时候 //开始打印了,也就是我们的题意所在,完了给他count初始化,因为还在循环内,这玩意我还要继续用,最后因为完美主义情结,我们把"罪魁祸首"给改成0,虽然就算不改后面也用不到 public static void printCount(ArrayList
list) {
int count = 1; int num = 0; for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
if (list.get(i) == 0) {
continue; } if (list.get(i) == list.get(j)) {
count++; num = list.get(j); list.set(j, 0); } if(j==list.size()-1){
System.out.println("数字:" + num + "==" + count); count=1; list.set(i,0); } } } }

转载于:https://www.cnblogs.com/lyuweigh/p/9495468.html

你可能感兴趣的文章
linux学习(之二)-初识linux的一些常用命令
查看>>
linux基础系统管理---系统管理
查看>>
C++学习笔记——类
查看>>
Linux命令之chkconfig
查看>>
JVMTI开发教程之一个简单的Agent
查看>>
Git学习笔记
查看>>
Developer Express 之 XtraReport报表预览控件PrintControl设置
查看>>
linux修复丢失的分区表
查看>>
iOS 开发遇到的问题
查看>>
单臂路由的实现
查看>>
还有人不认识通讯诈骗,短信验证码带你认识一下
查看>>
Docker(四)镜像创建
查看>>
unigui的UnimDatePicker控件使用经验
查看>>
用maven时出现,报错 miss 一些包,但是发现项目里已经引入了,但还是报错
查看>>
JQ中 $(document).scrollTop()、$('html').scrollTop()、 $(window).scrollTop()区别
查看>>
令人眼前一亮的下拉式终端 Tilda & Guake
查看>>
Python - 元组(tuple) 详解 及 代码
查看>>
AsynchronousSocketChannel
查看>>
IE6尾部重复字符bug , IE6下产生多余字符的BUG
查看>>
我的友情链接
查看>>