day06-遍历数组小练习

需求:

(1) 定义方法public static int getCount(int[] arr,int num),求出指定元素在数组中出现的次数。
(2) 定义方法public static int getAllCount(int[] arr),统计数组中出现次数为1的元素一共有多少个。(推荐-遍历数组,然后调用第一个方法,求出数组中每个元素在数组中出现的次数,如果只出现了一次,就统计)
(3) 定义方法public static int getAllCount(int[] arr,int[] arr2),找出数组中出现次数为1的元素。
(4) 在main方法中定义数组,如int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};。然后调用getAllCount方法,统计只出现一次的元素有多少个。
打印结果:数组中只出现一次的元素有2
package PrivateUse;
/*
    需求:
        (1)定义方法public static int getCount(int[] arr,int num),求出指定元素在数组中出现的次数。
	    (2)定义方法public static int getAllCount(int[] arr),统计数组中出现次数为1的元素一共有多少个。
	    (推荐-遍历数组,然后调用第一个方法,求出数组中每个元素在数组中出现的次数,如果只出现了一次,就统计)
        (3) 在main方法中定义数组,如int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};。然后调用getAllCount方法,统计只出现一次的元素有多少个。
	    (4)在main方法中定义数组,如int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};然后调用getAllCount方
	法,统计只出现一次的元素有多少个。
	    打印结果:数组中只出现一次的元素有2个
*/
import java.util.Scanner;
public class getAllCount {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        System.out.print("输入要查找的的数字:");
        int num=sc.nextInt();
        int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        System.out.print("\n数字"+num+"在数组中出现的次数为:");
        int result=getCount(arr,num);
        System.out.print(result+"次");
        System.out.print("\n在数组中出现次数为1的数字数量有:");
        int result2=getAllCount(arr);
        System.out.print(result2+"个");
        int[] arr2=new int[result2];  //以上一方法的结果设定为新建数组的长度
        System.out.print("\n在数组中出现次数为1的数字有:");
        arr2=ArrayPrint(arr,arr2);//将调用ArrayPrint方法的结果保存在新建的数组中
        for (int i = 0; i <arr2.length ; i++) {
            if(i==arr2.length-1){
                System.out.print(arr2[i]);
            }else{
                System.out.print(arr2[i]+" ");
            }
        }
    }

    //定义getCount方法
    public static int getCount(int[] arr,int num){
        int count=0;
        for(int i=0;i<arr.length;i++){
            if(num==arr[i]){
                count++;
            }
        }
        return count;
    }

    //定义getAllCount方法
    public static int getAllCount(int[] arr){
        int count1=0;
        for(int i=0;i<arr.length;i++){
            int count=0;  //每次大循环前清空count的值重新开始计数
            for(int j=0;j<arr.length;j++){
                if(arr[i]==arr[j]){
                    count++;
                }
                if(j==arr.length-1){
                    if(count==1){  //count1值为1代表在数组中只出现一次
                        count1++;
                    }
                }
            }
        }
        return count1;
    }

    //扩展练习,定义ArrayPrint方法
    //将出现次数为1的数字存到数组中输出
    public static int[] ArrayPrint(int[] arr,int[] arr2){
        int count1=0;
        for (int i = 0; i < arr.length; i++) {
            int count=0;
            for (int j = 0; j <arr.length ; j++) {
                if(arr[i]==arr[j]){
                    count++;
                }
            }
            if(count==1){
                count1++;
                //将count1-1的值做开始循环的初始值
                for (int j = count1-1; j <arr2.length; j++) {
                    //将arr[i]所指的数据保存到新建的数组中
                    arr2[j]=arr[i];
                }
            }
        }
        return arr2;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氪不改命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值