java日常学习:数组小练习

来源:互联网 发布:mindmanager注册码mac 编辑:程序博客网 时间:2024/06/04 17:44

java代码段


数组常用小工具

/*数组常用工具类(Arrays);    String toString(boolean[] a)返回指定数组内容的字符串表示形式    sort(数组)  排序    binarySearch()二分法   返回的是元素在数组的索引值,如果不存在返回负数表示,且是比它第一个数大的加一;*/import java.util.*;class demo1 {    public static void main(String[] args) {        int [] arr={1,23,54,3,5,89,16,75,26,25};        Arrays.sort(arr);    //排序;        int index = Arrays.binarySearch(arr,6);    //查找元素;        System.out.println("数组中的元素是:"+Arrays.toString(arr));        System.out.println("索引值是:"+index);    }}

数组去除零元素并且将剩下的元素储存到新数组,要求不能浪费新数组长度

/*需求:将数组中零元素剔除并且将剩余元素储存到新的数组中,不能浪费新数组的位置;*/import java.util.*;class demo2 {    public static void main(String[] args) {        int[] arr={0,45,2,8,0,9,7,3,0,9};        int[] newArr = clearZero(arr);        System.out.print("新数组元素是:"+Arrays.toString(newArr));    }    public static int[] clearZero(int[] oldArr)    {   //先计算出0的个数;        int count =0;        for (int i=0;i<oldArr.length ;i++ ){            if (oldArr[i]==0){                count++;            }        }        //新数组长度;        int[]  newArr = new int[oldArr.length-count];        //定义一个从零开始自增数当储存一个数后;        int index=0;        //存储剩余元素;        for (int i=0;i<oldArr.length ;i++ ){            if (oldArr[i]!=0){                newArr[index++]=oldArr[i];            }        }        return newArr;    }}

消除数组中的重复数组,并且将剩余元素放到新的数组中,要求不浪费数组

/*需求:消除数组中的重复数组,并且将剩余元素放到新的数组中,要求不浪费数组;*/import java.util.*;class demo3 {    public static void main(String[] args) {        int[] arr={1,1,3,6,8,2,6,74,8,3,6,4};        int[] newArr=clearRepeat(arr);        System.out.println("新的数组是:"+ Arrays.toString(newArr));    }    public static int[] clearRepeat(int[] oldArr){        //求出重复元素的个数;        int count=0;    //count变量 是用于记录重复元素的个数;        for (int i=0;i<oldArr.length-1 ;i++ ){            for (int j=1+i;j<oldArr.length ;j++ ){                if (oldArr[i]==oldArr[j]){                    count++;                    break ;                }            }        }        //创建一个新的数组;        int[] newArr=new int[oldArr.length-count];        int index=0;    //新数组使用的索引值;        for (int i=0;i<oldArr.length ;i++ ){            boolean flag=false;     //该标识是用于标识取出的元素是否存在新数组中;            int temp=oldArr[i];     //从旧数组中取出遍历的元素;            //遍历新的数组是否存在该数据;            for (int j=0;j<newArr.length ;j++ ){                if (newArr[j]==temp){                    flag=true;                    break ;                }            }            if (flag==false){  //注意**********这里是双等于号;                newArr[index++]=temp;            }        }        return newArr;    }}

有关班级及格率的数组合格综合练习

/*用户输入班级的人数,然后依次输入每个同学的成绩. 输入完毕之后,如果及格率没有达到60%, 就为每一位没有及格的成绩加2分,直到及格率达到60%为止。 */import java.util.*;class demo4 {    public static void main(String[] args){        int[] arr = myData();        double data=jiGe(arr);    //得到本班的及格率;        while(true){            if (data<0.6)            {                for (int i=0;i<arr.length ;i++ ){                    if (arr[i]<60){                        arr[i]=arr[i]+2;                    }                    data = jiGe(arr);    //重新计算及格率;                }            }else{                    break ;                 }        }        System.out.println("数组元素"+Arrays.toString(arr));        System.out.println("及格率是:"+data*100+"%");    }    //计算及格率;    public static double jiGe(int[] arr)    {           double count = 0;    //定义一个变量记录及格的人数;        for (int i=0;i<arr.length ;i++ ){            if (arr[i]>=60){                count++;            }        }        double data=count/arr.length;    // data记录及格率;        return data;    }    //首先,要返回自己定义的数组;    public static int[] myData(){        System.out.println("请输入班级的人数:");        Scanner scanner=new Scanner(System.in);        int count=scanner.nextInt();        int[] arr =new int[count];    //创建一个数组对象;        //录入成绩;        for (int i=0;i<count ;i++ ){            System.out.println("请输入第"+(i+1)+"位同学的成绩:");            arr[i] = scanner.nextInt();        }        return arr;    }}

用于平时自己复习回顾,如有错误,欢迎指正

原创粉丝点击