• 数组


    一、Random随机数【重点】

    1)导包
        import java.util.Random;
    2)创建Random对象
        Random r=new Random();
    3)接收随机数
        int num=r.nextInt(10);//随机数的范围:[0,10)   
        //生成1-100之间的随机数
        int num=r.nextInt(100)+1;   //随机数的范围:[1,100] 
    
    案例1:猜数字小游戏
        生成一个随机数1-100之间的随机数用num,键盘录入一个整数myNum,猜这个数
            如果myNum比num大,输出"猜大了"
            如果myNum比num小,输出"猜小了"
            如果myNum和num相等,输出"恭喜你,猜中了"
        如果猜错了,可以重复猜多次
    public class RandomDemo1{
        public static void main(String[] args){
            //生成一个随机数1-100之间的随机数用num
            Random r=new Random();
            int num=r.nextInt(100)+1;
    
            /*  
                循环的猜这个数
                如果myNum比num大,输出"猜大了"
                如果myNum比num小,输出"猜小了"
                如果myNum和num相等,输出"恭喜你,猜中了"   
            */
            while(true){
                //键盘录入一个整数myNum
                Scanner sc=new Scanner(System.in);
                int myNum=sc.nextInt();
                if(myNum>num){
                    System.out.println("猜大了");
                }else if(myNum<num){
                    System.out.println("猜小了");
                }else{
                    System.out.println("恭喜你,猜中了");
                }
            }
        }
    }
    

    二、数组【重点】

    概述:数组用于存储多个相同数据类型的元素
    
    1)数组的定义格式
        a:数据类型[] 数组名;
            举例:int[] arr;   【推荐格式】
        b:数据类型  数组名[]; 【不推荐格式】
            举例:int arr[];
    
    2)数组的初始化【重点】
        a:动态初始化
            给定长度,由系统分配元素初始化值
            举例:int[] arr=new int[3];//数组长度为3,每一个元素的初始值为0
    
        b:静态初始化
            给定元素初始值,由系统分配长度
            举例:int[] arr=new int[]{1,2,3};
                  int[] arr={1,2,3};
    
    3)获取数组中的元素【重点】
        数组中每一个元素都有一个索引,索引从0开始,最大索引为长度-1
        举例:
        int[] arr=new int[3];
        arr 存储的是数组的地址值
        arr[0] 表示第一个元素
        arr[1] 表示第二个元素
        arr[2] 表示第三个元素
    
    4)Java的内存分配【了解】
        所有的程序在运行的时候,数据都是存储在内存中,为了方便对数据进行管理和维护,Java把内存分为几块区域
        栈:
            存储的是局部变量(定义在方法中的变量)
            用完了,立即回收
        堆:
            存储的是new出来东西(对象,实体)
            特点:
            a:new出来的东西都有地址值
            b:默认初始值
                byte short int long  0
                float double    0.0
                char    'u0000'
                boolean  false
                引用类型    null;
            c:使用完毕,会被垃圾回收器空闲的时候回收
    
        方法区:
            静态数据,常量
    
    
    5)数组的两个小问题【重点】
        a:ArrayIndexOutofBoundsException,数组索引越界异常
            产生原因:没有找到对应的索引
    
        b:NullPointerException,空指针异常
            产生原因:数组为null,而去访问数中的元素
    

    三、数组的练习题

    1)遍历数组中所有的元素【重点】
        public class ArrayTest1{
            public static void main(String[] args){
                int[] arr={1,2,3,4,5};
                //arr.length: 获取数组的长度
                for(int i=0;i<arr.length;i++){
                    System.out.println(arr[i]);
                }
            }
        }
    
    2)定义一个int类型数组,元素为{77,44,55,66,88},求所有元素的和
        public class ArrayTest2{
            public static void main(String[] args){
                //定义一个int类型数组,元素为{77,44,55,66,88}
                int[] arr={77,44,55,66,88};
    
                //求所有元素的和
                int sum=0;//定义求和变量
    
                //遍历所有需要求和的元素
                for(int i=0;i<arr.length;i++){
                    //和sum累加
                    sum+=arr[i];
                }
                System.out.println("所有元素和为:"+sum);
            }
        }
    、
    3)定义一个int[]数组,元素为{77,44,55,66,88},求数组中元素的平均值
        public class ArrayTest3{
            public static void main(String[] args){
                int[] arr={77,44,55,66,88};
    
                //定义一个和值
                int sum=0;
                //遍历数组
                for(int i=0;i<arr.length;i++){
                    //获取每一个元素arr[i]和sum累加
                    sum+=arr[i];
                }
                //求平均值
                int avg=sum/arr.length;
                System.out.println("数组中元素的平均值为:"+avg);
            }
        }
    
    4)获取数组中元素的最大值
        int[] arr={77,88,66,99,55};
        /*
            思路:
                a:获取数组中的某一个元素,假设它是最大值max
                b:遍历所有元素和max进行比较,把大的值赋值给max
                c:遍历完成之后,max记录的就是最大值。
        */
        public class ArrayTest4{
            public static void main(String[] args){
                int[] arr={77,88,66,99,55};
                //获取数组中的某一个元素,假设它是最大值max
                int max=arr[0];
                //遍历所有元素和max进行比较,把大的值赋值给max
                for(int i=0;i<arr.length;i++){
                    if(arr[i]>max){
                        //把大的值赋值给max
                        max=arr[i];
                    }
                }
                //遍历完成之后,max记录的就是最大值。
                System.out.println("最大值为:"+max);
            }
        }
    
    
    5)定义长度为8的int类型数组,随机生成8个范围在[1,100]的元素,求所有元素的和,以及平均值
        public class ArrayTest5{
            public static void main(String[] args){
                //定义长度为8的int类型数组
                int[] arr=new int[8];
                //随机生成8个整数,赋值给数组中的元素
                for(int i=0;i<arr.length;i++){
                    Random r=new Random();
                    int num=r.nextInt(100)+1;
                    //把生成的随机数,赋值给每一个元素
                    arr[i]=num;
                }
    
                //求数组中所有元素的和
                int sum=0;//定义求和变量
                //遍历所有需要求和的元素
                for(int i=0;i<arr.length;i++){
                    //和sum累加
                    sum+=arr[i];
                }
                //求平均值
                int avg=sum/arr.length;
                System.out.println("所有元素的和为:"+sum);
                System.out.println("所有元素的平均值为:"+avg);               
            }
        }
    选择排序

    冒泡排序

    二分法

    四、二维数组【了解】

    理解:数组中的元素也是一个一维数组
    1)二维数组的定义格式
        a:动态初始化
            数据类型[][] 数组名=new 数据类型[m][n];
            m:二维数组中有多少个一维数组
            n:每一个一维数组中有多少个元素
            举例:
                int[][] arr=new int[3][2];
                //定义一个二维数组,数组名为arr
                //二维数组中有3个一维数组
                //每一个一维数组有2个元素
        b:静态初始化
            数据类型[][] 数组名=new 数据类型[][]{{元素...},{元素...},{元素...}...};
            简化格式:
                数据类型[][] 数组名={{元素...},{元素...},{元素...}...};
            举例:
                int[][] arr={{1,2,3},{4,5},{6}};
    
    2)获取二维数组中的元素
        数组名[索引]:  一维数组地址值
        数组名[索引][索引]:二维数组的元素
    
    3)二维数组练习题
        a:定义一个二维数组,自己指定任意元素,遍历输出数组中的每一个元素
            int[][] arr={{1,2,3},{4,5},{6}};
    
            for(int i=0;i<arr.length;i++){
                //arr[i]表示二维数组中的每一个一维数组,继续遍历
                for(int j=0;j<arr[i].length;j++){
                    System.out.print(arr[i][j]+" ");
                }
                System.out.println();
            }
    
        b:定义一个二维数组,自己指定任意元素,求所有元素的和
            int[][] arr={{1,2,3},{4,5},{6}};
            //定义和值
            int sum=0;
            for(int i=0;i<arr.length;i++){
                //arr[i]表示二维数组中的每一个一维数组,继续遍历
                for(int j=0;j<arr[i].length;j++){
                    System.out.print(arr[i][j]+" ");
                    sum+=arr[i][j];
                }
                System.out.println();
            }
            //输出sum的值
            System.out.println("所有元素的和为:"+sum);
    

    进制的转换

    
    
  • 相关阅读:
    person
    汽车.
    矩形
    设计模式
    汽车
    三角形
    银行
    西游记
    面向对象
    随机生成4位验证码,输入验证码与生成的比较,最多输入5次
  • 原文地址:https://www.cnblogs.com/wangjintao-0623/p/9123244.html
Copyright © 2020-2023  润新知