public static void main(String[] args) { printCount(getNumList());} private static ArrayList<Integer> list; public static ArrayList<Integer> getNumList() { list = new ArrayList<Integer>(); 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<Integer> 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
时间: 2024-11-07 09:56:34