数组

一、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); 

进制的转换

 

 

转载于:https://www.cnblogs.com/wangjintao-0623/p/9123244.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值