一起重新开始学大数据-java篇-DAY06-Random和数组1

**

DAY06-Rabdom和数组1

**
今天内容:random的学习掌握、数组的初步学习

Random
步骤:

①导包:import java.util.Random;
②创建对象 :Random random = new Random();
③定义接受常量: 数据类型 常量 = random.nex( //括号内填写随机次数的次数 );

例题一、//需求:用random实现 剪刀 、 石头 、 布

//需求:石头剪刀布
//0 剪刀  1 石头    2布
import java.util.Random;
public class SHITOUjiandaobu {
    public static void main(String[] args) {
        Random random = new Random();
        int s=random.nextInt(3);
        if(s==0){
            System.out.println("剪刀");
        }else if (s==1){
            System.out.println("石头");
        }else{
            System.out.println("布");
        }


    }
}

例题二、//升级需求:人机对战 剪刀石头布

// random 机器出的
 scanner 人出的
 0 剪刀  1 石头  2 布
//定义死循环持续执行,当要退出时,破坏死循环
import java.util.Random;
import java.util.Scanner;
public class RenjiDazhan {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        //机器
        boolean i=true;
        while (i){
        int x = random.nextInt(3);
        //人
        int y = scanner.nextInt();
        if(x==y){
            System.out.println("平局---退出游戏输入886");
        }else if((y==0&&x==2) || (y==1&&x==0) || (y==2&&x==1)){//人赢  (y==0&&x==2) || (y==1&&x==0) || (y==2&&x==1)
            System.out.println("人赢---退出游戏输入886");
        }else if(y==886){
            i=false;
        }
        else {
            System.out.println("机器赢---退出游戏输入886");
        }
        }
    }
}

数组

概述:

有一个学生在Java中通过定义变量来表示比如

  String name=”张三”;

  但是一个班级中有很多学生该怎么办?定义多个变量

String name1=”张三1”;
String name2=”张三2”;
String name3=”张三3”;
String name4=”张三4”;
这种方式很繁琐,可用不可取 这个时候就产生了新的需求

数组特点:
1.一次性声明大量的用于存储数据的变量

2.要存储的数据通常都是同类型的数据

数组(array)
是一种用于存储多个相同类型数据的存储模型

格式:
两种格式
格式1:

			数据类型[] 变量名
例如:	int[] arr
格式2:

			数据类型 变量名[]
例如:	int arr[]

初始化
概述:

  • Java中的数组必须初始化,然后才能使用
  • 初始化:为数组中的元素分配存储空间,并为每个数组元素赋值

初始化方式:

  • 动态和静态初始化

①动态初始化:

  • 初始化时只指定数组的长度,由系统为数组分配初始值
  • 格式:数据类型[] 变量名=new 数据类型[数组长度];
  • 例如: int[] arr=new int[10];

②静态初始化:

  • 初始化时指定每个数组元素的初始值,由系统决定数组长度

  • 格式:数据类型[] 变量名=new 数据类型[]{数据1,数据2…数据n};

     例如:
     		 int[] arr=new int[]{1,2,3,4,5};
      		 可以简化为:数据类型[] 变量名={数据1,数据2...数据n};
       		注意:简化写法中使用的是大括号
     例如:
    			int[] arr={1,2,3,4,5,6,7,8,9,10};
    

数组的访问分为两部分

1.访问数组

  • 通过数组名称来访问
  • 格式:数组名称

2.访问数组中的元素

  • 通过索引来访问
  • 格式:数组名称[索引]

索引

   概述:是数组中元素排序的方式

   作用:用于访问数组中的数据

特点:

  1. 索引从0开始
  2. 索引是连续的
  3. 索引是逐一增加,每次加1

内存结构图

在这里插入图片描述

数组常见问题:

在这里插入图片描述

①数组索引越界
Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 5
在这里插入图片描述

问题原因:访问到数组中的不存在的索引时发生
在这里插入图片描述

②空指针
Exception in thread “main” java.lang.NullPointerException

在这里插入图片描述

问题原因:引用没有指向堆内存的数据
在这里插入图片描述

数组的常见操作

①遍历(获取数组中的所有元素)
②获取最值(最大值、最小值)
③排序(冒泡排序)

①遍历

//遍历
public class BianLi {
    public static void main(String[] args) {
        int[] str={5,6,7,10,99};
        for (int i = 0; i <=str.length-1 ; i++) {
            System.out.println(str[i]);
        }
    }
}

②获取最值

public class SZMAX {
    public static void main(String[] args) {
        int[] str={1,2,5,6,8,100,3,7,4,10};
        int max=str[0];
        for (int i = 1; i <str.length-1 ; i++) {
            if(str[i]>max){
                max=str[i];
            }

        }
        System.out.println(max);
    }
}

③冒泡排序

在这里插入图片描述

//冒泡排序
public class MaoPaopaixu {
    public static void main(String[] args) {
        int [] str={5,3,2,6,1,4};
        for (int i = 0; i <str.length-2 ; i++) {
            for (int j = 0; j <str.length-1-i; j++) {
                if(str[j]>str[j+1]){
                    int stmp=str[j+1];
                    str[j+1]=str[j];
                    str[j]=stmp;
                }
            }
        }
        //遍历
        for (int k = 0; k <str.length-1 ; k++) {
            System.out.print(str[k]);
        }
    }
}

填空题

数组会在内存中开辟一块________的空间,每个空间相当于之前的一个变量,称为数组的元素。数组的长度一经确定,就无法再改变。
要获取一个数组的长度,可以通过_______属性来获取,但获取的只是为数组分配的空间的数量,而不是数组中实际已经存放的元素的个数。
__ ____仅仅是给出了数组名字和元素的数据类型,要想真正的使用数组还必须使用new关键字为它分配内存空间。
创建数组后,系统会给每一个数组元素一个默认的值,如String类型元素的默认值是
_______。
在Java中有二维数组int [ ] [ ] array={{1,2,3},{4,5}} ,可以使用___________得到二维数组中第二维中第一个数组的长度。

(答案见下一章)
|
|
|
|

上一章day05-循环语句

下一章day07-数组2和方法调用
天天更新不容易,随手点个小赞👍,你说是吧,吴彦祖!O(∩_∩)O
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的动作太慢了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值