java用随机数类对数组初始化_Java基础知识_day04_(Random类,一维数组,二维数组)

内容摘要:

Random随机数类

一维数组

二维数组

1. Random随机数类

作用:

用于产生随机数.

使用步骤:

导包:

import java.util.Random;

创建对象:

Random r = new Random();

获取随机数:

int num = r.nextInt(10);

获取的数据范围:[0,10),包含0,不包含10.

注意:

当nextInt()无参数时,产生的随机数结果是浮点型数据,范围是[0,1).

案例:

package com.heima.random;

import java.util.Random;

import java.util.Scanner;

public class RandomTest {

public static void main(String[] args) {

Random random = new Random();

int num = random.nextInt(100) + 1;

System.out.println("随机数已生成!");

int guessNum = 0;

Scanner scanner = new Scanner(System.in);

while (true) {

System.out.println("请输入你猜的数字(1-100):");

guessNum = scanner.nextInt();

if (guessNum > num) {

System.out.println("你猜的" + guessNum + "大了!");

}else if (guessNum < num) {

System.out.println("你猜的" + guessNum + "小了!");

}else {

System.out.println("恭喜你,猜中了!");

break;

}

}

}

}

2. 一维数组

数组:

数组是存储同一种数据类型的多个元素的容器.

数组存储同数据类型必须一致.(可以存储基本数据类型和引用数据类型).

定义格式:推荐使用第一种

数据类型[] 数组名; -> int[] arr;定义了一个int类型的数组,数组名是arr;

数据类型 数组名[]; -> int arr[];定义了一个int类型的变量,变量名是数组arr[];

数组的初始化:为数组开辟内存空间,并为数组中的每个元素赋初始值.

Java中数组必须先进性初始化后,才能使用.

动态初始化:只给出数组的长度,由系统给出初始化值

数据类型[] 数组名 = new 数据类型[数组长度]; ->new是申请一块连续的内存空间.

静态初始化:给出数组的初始化值,由系统给出数组的长度.

格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,…,元素n};

简化格式: 数据类型[] 数组名 = {元素1,元素2,…,元素n};

数组元素的访问:

数组名代表是的整个数组的地址.

数组中的每一个元素均有一个唯一的编号(索引),最小编号是0,最大编号是数组长度-1.

访问格式:数组名[索引];

Java中内存分配:

栈:存储的局部变量(局部变量是存储在方法中的变量)

堆:存储的是new出来的东西(就是对象)

每一个对象都有一个地址值;

每一个对象的数据都有默认值.

方法区:面向对象使用

本地方法区:和系统相关

寄存器:CPU使用

一维数组常见问题:

ArrayIndexOutOfBoundsException:数组索引越界异常(访问不存在的索引);

NullPointerException: 空指针异常(数组已经不指向堆内存中的数组,再访问就会出此错误);

空常量,null只能赋值给引用类型(类,接口,数组).

一维数组案例:

package com.heima.array;

/* * 一维数组的遍历 */

public class ArrayDemo3 {

public static void main(String[] args) {

int[] arr = {1,2,3};

// 将数组的元素顺序输出

System.out.println(arr[0]);

System.out.println(arr[1]);

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

//使用for循环输出

for (int i = 0; i < 3; i++) {

System.out.println(arr[i]);

}

// 使用数组长度属性:length输出数组数据

for (int i = 0; i < arr.length; i++) {

System.out.println(arr[i]);

}

}

}

package com.heima.array;

/* * 求数组中的最大值 */

public class ArrayDemo4 {

public static void main(String[] args) {

int[] arr = {1,2,3};

// 假设最大值为0

int max = 0;

// 让max与数组中的每一个值进行比较,使用max记录最大值

for (int i = 0; i < arr.length; i++) {

if (max < arr[i]) {

max = arr[i];

}

}

}

}

package com.heima.array;

/* * 数组的使用的常见问题 */

public class ArrayDemo2 {

public static void main(String[] args) {

int[] arr = {1,2};

System.out.println(arr);

System.out.println(arr[0]);

System.out.println(arr[2]); // 数据索引越界异常ArrayIndexOutOfBoundsException

arr = null; // 将arr指向的数组置为空

System.out.println(arr[1]); //空指针异常NullPointerException

}

}

3. 二维数组

本质:

本质是其元素为一维数组的数组(将一维数组作为一维数组的元素值).

定义格式:

数据类型[][] 数组名;(推荐)

数据类型 数组名[][];

数据类型[] 数组名[];

初始化:

静态初始化:

数据类型[][] 数组名 = new 数据类型[][]{{元素…}, …{元素…}, {元素…}};

简化格式: 数据类型[][] 数组名 = {{元素…},… {元素…}, {元素…}};

动态初始化:

数据类型[][] 数组名 = new 数据类型[m][n];

m表示二维数组中一维数组的个数;

n表示一维数组中元素的个数.

获取二维数组元素:

二维数组名配合索引可以获取到每一个一维数组;

每一个一维数组配合索引可以获取到数组中的元素.

如:二维数组名为arr

arr[索引]代表二维数组中的一维数组;

a[索引][索引]代表一维数组中的元素值.

二维数组元素遍历: int[][] arr

arr.length代表是的一维数组的个数(就是二维数组的行数);

arr[m].length代表的是第m-1个一维数组中元素的个数.

二维数组案例:

package com.heima.array;

/* * 二维数组:初始化,遍历 */

public class ArrayArrayDemo {

public static void main(String[] args) {

int[][] arr = {{1,2},{3,4},{5,6}};

System.out.println(arr); // 输出二维数组的地址值[[I@1774b9b

System.out.println(arr.length); // 输出二维数组的长度,就是一维数组的个数

System.out.println(arr[0]); // 输出第一个一维数组的地址值

System.out.println(arr[0][0]); // 输出第一个一维数组的第一个元素值

// 数组的遍历,输出数组的值

for (int i = 0; i < arr.length; i++) {

for (int j = 0; j < arr[i].length; j++) {

System.out.println(arr[i][j]);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值