关键:
1.解决数组长度增加,同时要保留数组的元素值
2.统计相同元素值
原理:使用countArray[item]++
package com.MyJava;import java.util.Arrays;
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num = 0;int[] a = new int[0];int[] b = new int[0];int i = 0;while (num >= 0) {System.out.println("请输入0-100的整数:");num = scan.nextInt();// 如果输入了负数,立即break循环if (num < 0)break;// 数组a和b相互copy,就像球在左右手之间来回交换a = Arrays.copyOf(b, i + 1);a[i] = num;b = Arrays.copyOf(a, i + 1);System.out.print("当前输入的整数有:");for (int item : b) {System.out.print(item + " ");}System.out.println();i++;}System.out.println("输入了负数,已退出");// 统计0-100的整数个数int[] countArray = new int[101];// 统计每个元素的出现次数for (int item : a) {countArray[item]++;//数组a当中元素数值=item时,item++}for (int j = 0; j < countArray.length; j++) {if (countArray[j] > 0) {System.out.println("数字 " + j + " 出现了 " + countArray[j] + " 次");}}}
}
原理:用两个相同数组比较元素值后,相同的元素数值设为-1
package com.MyJava;import java.util.Arrays;
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num = 0;int[] a = new int[0];int[] b = new int[0];int i = 0;while (num >= 0) {System.out.println("请输入0-100的整数:");num = scan.nextInt();// 如果输入了负数,立即break循环if (num < 0)break;// 数组a和b相互copy,就像球在左右手之间来回交换a = Arrays.copyOf(b, i + 1);a[i] = num;b = Arrays.copyOf(a, i + 1);System.out.print("当前输入的整数有:");for (int item : b) {System.out.print(item + " ");}System.out.println();i++;}System.out.println("输入了负数,已退出");// 此时数组a=b,比较元素值,若相同则赋值为-1,就能排除重复计数for (int j = 0; j < a.length; j++) {int n = 0;for (int k = 0; k < b.length; k++) {if (a[j] == b[k]) {b[k] = -1;n++;}}if (n > 0)System.out.print(a[j] + ":" + n + "个;");}}
}
请输入0-100的整数:
1
当前输入的整数有:1
请输入0-100的整数:
2
当前输入的整数有:1 2
请输入0-100的整数:
2
当前输入的整数有:1 2 2
请输入0-100的整数:
3
当前输入的整数有:1 2 2 3
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4 4
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4 4 4
请输入0-100的整数:
0
当前输入的整数有:1 2 2 3 4 4 4 0
请输入0-100的整数:
0
当前输入的整数有:1 2 2 3 4 4 4 0 0
请输入0-100的整数:
-1
输入了负数,已退出
1:1个;2:2个;3:1个;4:3个;0:2个;