综合练习、二维数组-Java入门-黑马程序员2022年新视频DAY7笔记

Random

1.使用random生成随机数需要导包 import java.util.Random;

//导包
import java.util.Random;

Random r = new Random();
int num = r.nextInt(bound:)

代码中的nextInt就是随机生成一个整型数,括号中的bound就是生成随机数的范围。如果只写一个数字,则为[0,n),如果写两个数字,则为[m,n)

强制类型转换

Java中的强制类型转换是 char c = (char) (97); 不同于c语言中的 char c = char(97);

抽奖池代码优化

比较简单的想的是如果抽到了一个奖金,那么就把该奖金对应的索引进行标记,如果再次抽到这个奖金对应的索引,那么就重新生成随机索引,直至所有奖金对应的索引都标记完为止;

这种方法的问题是抽取的效率有待提高,但无可避免会出现无效随机索引的问题,如果可以在一开始将所有的奖金原本顺序对应的索引值打乱,打乱后进行遍历,那么就可以避免出现无效随机索引的问题。具体实现就是在数组遍历中每次生成一个随机值(小于数组长度),然后将遍历的 i 对应的奖金与随机值对应的奖金进行互换,从而实现打乱奖金顺序的效果,随后进行遍历即可。

二维数组

1.二维数组的静态初始化

// 二维数组的静态初始化
// 格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2}}
//建议每一个一维数组单独一行,这样便于阅读
int[][] arr = new int[][]{
{1,2,3,4},
{5,6,7,8}
};

//简化格式:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}}
int[][] arr = {
{1,2,3,4},
{5,6,7,8}
};
/*int arr[][] = [][]{
{1,2,3,4},
{5,6,7,8}
};
也是可以的,但是前者符合阿里巴巴编码规范,后者不符合阿里巴巴编码规范*/

2.二维数组的动态初始化

//二维数组的动态初始化
//格式:数据类型[][] 数组名 = new 数据类型[m][n];
//m表示这个二维数组,可以存放多少个一维数组,n表示每一个一维数组,可以存放多少个元素
int[][] arr = new int[2][3];

3.二维数组的内存图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值