• 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
  • 相关阅读:
    Jquery 总结的几种常用操作
    Mybatis 一对多
    HTML 子父窗口 iframe 超时 返回首页
    Struts 标签
    Spring + Mybatis 基于注解的事务
    机器学习实战-数据探索(变量变换、生成)
    机器学习实战-数据探索(变量变换、生成)
    Pandas matplotlib 无法显示中文 Ubuntu16.04
    Pandas matplotlib 无法显示中文 Ubuntu16.04
    Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
  • 原文地址:https://www.cnblogs.com/lvlisn/p/16395309.html
Copyright © 2020-2023  润新知