Java 入门 9 数组

 

 

 

静态初始化数组

public class ArrayDemo {
    public static void main(String[] args) {
        //静态初始化数组
        //数据类型 [] 数据名称=new 数据类型[]{元素1,元素2,......}
        //全写
        int [] arr1=new int[]{1,3,5,6,7,8};
        //简写
        int [] arr2={2,5,6,7,8};
        //注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型
        System.out.println(arr1);//[I@28d93b30
        System.out.println("-----------");
        System.out.println(arr2);//[I@1b6d3586

    }
}
View Code

动态初始化数组

public class ArrayDemo3 {
    public static void main(String[] args) {
        //目标 学会动态初始化数组的定义和使用
        double [] scores=new double[3];//[0.0,0.0,0.0]

        //赋值
        scores[0]=99.4;
        System.out.println(scores[0]);

        System.out.println(scores[2]);

        String [] names=new String[5];
        names[0]="张飞";
        names[3]="关羽";
        System.out.println(names[0]);//张飞
        System.out.println(names[1]);//null
        System.out.println(names[2]);//null
        System.out.println(names[3]);//关羽
    }
}
View Code

数组的取值,最大索引值,数组的length;

public class ArrayDemo2 {
    public static void main(String[] args) {
        //目标学会访问数组内的元素
        int [] arr={12,21,44};

        /*
        取值:数组名称[索引]
        数组的最大索引值:arr.length-1; 前提是 数组的元素个数大于0
        *通过数组的索引获取数组指定索引内的值

        */
        System.out.println(arr[1]);//21
        System.out.println(arr[2]);//44


        //数组的长度书写:length
        System.out.println(arr.length);//3
    }
}
View Code

动态数组的元素默认值规则

 

 

public class ArrayDemo4 {
    public static void main(String[] args) {
        //目标掌握动态初始化 元素默认值的规则
        //1 整型数组的元素默认值都是0
        int[] arr=new int[10];
        System.out.println(arr[0]);//0
        System.out.println(arr[9]);//0


        //2 字符数组元素的默认值是多少了?0
        char[] chars=new char[199];
        System.out.println(chars[0]);//0对应的字符是没有的 打的乱码
        System.out.println((int)chars[1]);//0 强制转换后是0
        System.out.println((int)chars[2]);//0
        System.out.println("======");

        //3 浮点型数组的元素默认值是0.0;
        float[] floats=new float[10];
        System.out.println(floats[0]);
        System.out.println(floats[1]);
        System.out.println(floats[2]);

        //4 布尔类型的数组  false
        boolean[] bools=new boolean[18];
        System.out.println(bools[0]);//false
        System.out.println(bools[1]);//false
        System.out.println(bools[2]);//false

        //5 引用类型的数组 null
        String[] strs=new String[19];
        System.out.println(strs[0]);//null
        System.out.println(strs[1]);//null
        System.out.println(strs[2]);//null
    }
}
View Code

 

 

 

 

 数组遍历循环 解决问题

import java.util.Random;
import java.util.Scanner;

public class ArrayDemo5 {
    public static void main(String[] args) {
        //目标:学会进行数组元素的遍历
        int[] ages={12,24,43};
        //利用for循环遍历数组
        for(int i=0;i<ages.length;i++){
            System.out.println(ages[i]);
        }

        //arr.fori+回车 快速敲除for循环遍历
        for (int i = 0; i < args.length; i++) {
            //arr[i].sout+回车 快速 写出控制台打印
            System.out.println(args[i]);
        }


        //1需求 求出某部门5名员工的销售额15,12,45,57,89 计算他们部门的销售总额度
        int [] arr1={15,12,45,57,89};
        int sum=0;
        for (int i = 0; i < arr1.length; i++) {
            sum+=arr1[i];
        }
        System.out.println("销售总额是"+sum);

        //2需求 数组求最大值
        int [] arr2={15,12,45,57,89};
        int maxNum=arr2[0];
        for (int i = 1; i < arr2.length; i++) {
            if(maxNum<=arr2[i]){
                maxNum=arr2[i];
            }
        }
        System.out.println(maxNum + "最大值");


        //3 需求 在1-28之间生成5个数字(无所谓是否重复),让大家来菜数字
        Random r=new Random();
        int [] arr3=new int[5];
        for (int i = 0; i < arr3.length; i++) {
            arr3[i]=r.nextInt(27)+1;
            System.out.println(arr3[i]);
        }

        Scanner Scan=new Scanner(System.in);

        System.out.println(arr3[1]);
        int data;
        boolean result=false;
        while (true){
            System.out.println("请输入你要猜的数字0-28");
            data=Scan.nextInt();
            for (int i = 0; i < arr3.length; i++) {
                if(data==arr3[i]){
                    result=true;
                    System.out.println("你猜中了");
                    System.out.println("猜中的位置"+i);
                    System.out.println(arr3);
                    break ;
                }
            }
            if(result){
                break;
            }else{
                System.out.println("你猜测的数据在真个数字中不存在,请继续");
            }
        }
    }
}
View Code

 

冒泡排序

public class ArrayDemo6 {
    public static void main(String[] args) {
       //冒泡排序
        //1定义一个数组
        int [] arr={11,22,333,44,62,10,4,65,8,9};

        
        //开始循环排序  arr.length个数 则第一个数只需要和arr.length-1个数对比
        int num;
        //这种写法
//        for (int i = 0; i < arr.length-1; i++) {
//            for (int i1 = i+1; i1 < arr.length; i1++) {
//                if(arr[i]>arr[i1]){
//                    num=arr[i1];
//                    arr[i1]=arr[i];
//                    arr[i]=num;
//                }
//            }
//        }
        //两种写法
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-i-1; j++) {
                if(arr[j]>arr[j+1]){
                    num=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=num;
                }
            }
        }
        System.out.println("排序完成");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
View Code

 

posted @ 2022-06-21 00:28  还有什么值得拥有  阅读(19)  评论(0编辑  收藏  举报