public class ArrayCount {
/**
* 随机生成50个数字(整数),每个数字的范围是[10, 50], 统计每个数字出现的次数以及出现次数最多的数字与它的个数,
* 最后将每个数字及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它。打印时按照数字的升序排列
*
* @param args
*/
//打印数组。
public static void printArray(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x != arr.length - 1)
System.out.print(arr[x] + ",");
else
System.out.print(arr[x] + "]");
}
System.out.println();
}
//获得10-50不重复数字的数组arr1,即10,11,12,13.......48,49,50长度为41
public static int[] getArr1(){
int [] arr1 = new int [41];
for(int m = 0; m<arr1.length; m++){
arr1[m]=10+m;
}
printArray(arr1);
return arr1;
}
//获得长度为50的由随机数字组成的数组arr,范围在10-50;
public static int[] getArr(){
int[] arr = new int [50];
for(int i =0;i<arr.length;i++){
arr[i]=(int)(Math.random()*40+10);;
}
printArray(arr);
return arr;
}/*
把2个数组中的元素进行比较,并计数,打印每个元素及其出现次数
将次数封装成与数组arr1长度相同的新数组,获取出现次数的最值
*/
public static void countNum(){
int arr[] =getArr();
int arr1[] = getArr1();
int counter[]= new int[arr1.length];
int max =0;
for(int a = 0; a< arr1.length; a++){
//初始化数组arr中某个元素出现个数为0
int count =0;
for(int b =0; b< arr.length; b++){
//如果arr中元素与arr1中元素相同,count自增
if (arr1[a] == arr[b]){
count++;
}
}
//如果出现次数为0,则不打印,出现即打印arr中元素及其出现个数
if(count != 0){
System.out.println(arr1[a]+"出现的次数为"+count);
}
//count封装到与arr1长度相同的counter数组中
counter[a]=count;
//对数组遍历获取最值,即元素出现最多的个数
for(int c=0;c< arr1.length;c++){
if(counter[c]>max){
max=counter[c];
}
}
}
getIndex(counter,max,arr1);
}
//获得出现次数最多的元素及对应的次数
public static void getIndex(int[]arr,int max,int[]data){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==max){
System.out.println("数字"+data[i]+"出现次数最多为"+max);
}
}
}
//对数组进行排序
public static void arraySort(int[] arr){
for(int i= 0;i<arr.length-1; i++){
for(int j = i+1; j<arr.length;j++){
if(arr[i]>=arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printArray(arr);
}
//主函数调用方法实现
public static void main(String[] args) {
countNum();
arraySort(getArr());
}
}
/**
* 随机生成50个数字(整数),每个数字的范围是[10, 50], 统计每个数字出现的次数以及出现次数最多的数字与它的个数,
* 最后将每个数字及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它。打印时按照数字的升序排列
*
* @param args
*/
//打印数组。
public static void printArray(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x != arr.length - 1)
System.out.print(arr[x] + ",");
else
System.out.print(arr[x] + "]");
}
System.out.println();
}
//获得10-50不重复数字的数组arr1,即10,11,12,13.......48,49,50长度为41
public static int[] getArr1(){
int [] arr1 = new int [41];
for(int m = 0; m<arr1.length; m++){
arr1[m]=10+m;
}
printArray(arr1);
return arr1;
}
//获得长度为50的由随机数字组成的数组arr,范围在10-50;
public static int[] getArr(){
int[] arr = new int [50];
for(int i =0;i<arr.length;i++){
arr[i]=(int)(Math.random()*40+10);;
}
printArray(arr);
return arr;
}/*
把2个数组中的元素进行比较,并计数,打印每个元素及其出现次数
将次数封装成与数组arr1长度相同的新数组,获取出现次数的最值
*/
public static void countNum(){
int arr[] =getArr();
int arr1[] = getArr1();
int counter[]= new int[arr1.length];
int max =0;
for(int a = 0; a< arr1.length; a++){
//初始化数组arr中某个元素出现个数为0
int count =0;
for(int b =0; b< arr.length; b++){
//如果arr中元素与arr1中元素相同,count自增
if (arr1[a] == arr[b]){
count++;
}
}
//如果出现次数为0,则不打印,出现即打印arr中元素及其出现个数
if(count != 0){
System.out.println(arr1[a]+"出现的次数为"+count);
}
//count封装到与arr1长度相同的counter数组中
counter[a]=count;
//对数组遍历获取最值,即元素出现最多的个数
for(int c=0;c< arr1.length;c++){
if(counter[c]>max){
max=counter[c];
}
}
}
getIndex(counter,max,arr1);
}
//获得出现次数最多的元素及对应的次数
public static void getIndex(int[]arr,int max,int[]data){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==max){
System.out.println("数字"+data[i]+"出现次数最多为"+max);
}
}
}
//对数组进行排序
public static void arraySort(int[] arr){
for(int i= 0;i<arr.length-1; i++){
for(int j = i+1; j<arr.length;j++){
if(arr[i]>=arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printArray(arr);
}
//主函数调用方法实现
public static void main(String[] args) {
countNum();
arraySort(getArr());
}
}