java随机数Random, 数组
来源:互联网 发布:淘宝换购什么意思啊 编辑:程序博客网 时间:2024/05/17 02:56
l 概述
n 用于产生一个随机数
l 使用步骤(和Scanner类似)
n 导包
u import java.util.Random;
n 创建对象
u Random r = new Random();
n 获取随机数
u int number = r.nextInt(10);
u 产生的数据在0到10之间,包括0,不包括10。
u 括号里面的10是可以变化的,如果是100,就是0-100之间的数据
l 练习
n 获取0-10之间的随机数
n 获取1-100之间的随机数
publicclassDemo01Random {
publicstaticvoidmain(String[]args) {
// 创建对象
Random r=new Random();
for(intx= 0;x < 10;x++){
// 获取随机数
intnumber =r.nextInt(10);
// 输出随机数
System.out.println("number:"+number);
}
System.out.println("--------------------");
// 如何获取到一个1-100之间的随机数呢?
inti =r.nextInt(100)+ 1;
System.out.println("i:" +i);
}
}
n 猜数字小游戏案例
系统产生一个1-100之间的随机数,请猜出这个数据是多少
publicclassDemo02Random {
publicstaticvoidmain(String[]args) {
// 系统产生一个随机数1-100之间的。
Random r=new Random();
intnumber =r.nextInt(100)+ 1;
while(true){
// 键盘录入我们要猜的数据
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要猜的数字(1-100):");
intguessNumber =sc.nextInt();
// 比较这两个数据(用if语句)
if(guessNumber >number){
System.out.println("你猜的数据" +guessNumber+"大了");
} elseif (guessNumber<number) {
System.out.println("你猜的数据" +guessNumber+"小了");
} else{
System.out.println("恭喜你,猜中了");
break;
}
}
}
}
数组
1.1 数组概述
l 需求:现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦。为了解决这种问题,Java就提供了数组供我们使用。
l 那么数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:
n 数组是存储多个变量(元素)的容器
n 这多个变量的数据类型要一致
1.2 数组定义格式
l 数组概念
n 数组是存储同一种数据类型多个元素的容器。
n 数组既可以存储基本数据类型,也可以存储引用数据类型。
l 数组的定义格式
n 格式1:数据类型[] 数组名;
n 格式2:数据类型数组名[];
n 注意:这两种定义做完了,数组中是没有元素值的。如何对数组的元素进行初始化呢?
1.3 数组初始化
l 概述
n Java中的数组必须先初始化,然后才能使用。
n 所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
l 数组的初始化方式
n 第一种初始化:初始化时只指定数组长度,由系统为数组分配初始值。
n 第二种初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
1.4 数组的初始化
l 初始化时只指定数组长度,由系统为数组分配初始值。
n 格式:数据类型[] 数组名 = new 数据类型[数组长度];
n 数组长度其实就是数组中元素的个数。
n 举例:
u int[] arr = new int[3];
u 解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。
1.5 访问数组元素
l 直接打印数组名,打印的是数组堆内存中的地址
l 数组中的每个元素都是有编号的,编号是从0开始的,最大的编号就是数组的长度-1
l 用数组名和编号的配合我们就可以获取数组中的指定编号的元素
l 这个编号的专业叫法:索引
l 格式:数组名[编号] -- 数组名[索引]
n 数组名称为arr,索引为0,1,2
n 获取数组中元素的格式:
u arr[0]获取数组中的第一个元素
u arr[1]获取数组中的第二个元素
u arr[2]获取数组中的第三个元素
1.6 Java中的内存分配
Java 程序在运行时,需要在内存中的分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
l 栈存储局部变量
n 局部变量是定义在方法中或者语句中的变量
n 局部变量使用完毕,立即回收
l 堆存储new出来的东西
n 每一个对象都有首地址值,是一个十六进制的地址
n 每一个对象内的数据都有默认值
u byte,short,int,long 0
u float,double 0.0
u char ‘\u0000’,一个空格
u boolean false
u 引用类型:null
n 使用完毕后,会被垃圾回收器空闲的时候回收。
l 方法区(面向对象进阶讲)
l 本地方法区 (和系统相关)
l 寄存器 (给CPU使用)
l 画图说明:数组的内存图
1.7 数组内存图解
l 定义一个数组,输出数组名及元素。然后给数组中的元素赋值,再次输出数组名及元素
l 定义两个数组,分别输出数组名及元素。然后分别给数组中的元素赋值,分别再次输出数组名及元素。
l 定义两个数组,先定义一个数组赋值,输出。然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。然后给第二个数组赋值,再次输出两个数组的名及元素。
就相当于两个人合租,一个人把房间打扫了,另一个人住的也是干净的.
1.8 数组的初始化(第二种初始化)
l 概述
初始化时指定每个数组元素的初始值,由系统决定数组长度。
l 格式
数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2,…};
l 举例
int[] arr = newint[]{1,2,3};
解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且值分别是1,2,3。
l 简化格式
数据类型[] 数组名 = {元素1,元素2,...};
l 简化格式举例
int[] arr = {1,2,3};
l 内存图
1.9 数组操作的两个常见小问题
l 数组索引越界异常ArrayIndexOfBoundsException
访问到了数组中的不存在的索引时发生。
l 空指针异常NullPointerException
数组引用没有指向对象,却在操作对象中的元素时。
l 为什么要记住这些小问题呢?
因为写程序不仅仅是把代码写出来,还包括出现问题后要能够及时的把问题解决。
而排错也应该是我们的基本功。所以,我们也应该记住一些常见的问题,以及出错原因和解决方案。
l 内存图
1.10 练习
l 遍历数组
n 依次输出数组中的每一个元素
n 获取数值长度:数值名.length
publicclassDemo07ArrayTest {
publicstaticvoidmain(String[]args) {
// 定义数组
int[]arr = { 11, 22, 33, 44, 55 };
// 原始做法
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
System.out.println("--------------------");
// 用for循环改进
for(intx= 0;x < 5;x++){
System.out.println(arr[x]);
}
System.out.println("--------------------");
//为了解决我们去数数组中元素个数的问题,数组就提供了一个属性:length
//用于获取数组的长度
//格式:数组名.length
System.out.println("数组共有:"+arr.length+"个元素");
System.out.println("--------------------");
for(intx=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
}
}
l 获取最值
n 获取数组中的最大值最小值
publicclassDemo08ArrayTest {
publicstaticvoidmain(String[]args) {
//定义数组
int[]arr = {12,98,45,73,60};
//定义参照物
intmax =arr[0];
//遍历数组,获取除了0以外的所有元素,进行比较
for(intx=1;x<arr.length;x++) {
if(arr[x] >max) {
max=arr[x];
}
}
System.out.println("数组中的最大值是:"+max);
}
}
1.11 二维数组
1.11.1概述
l 由此可见:其实二维数组其实就是一个元素为一维数组的数组。
1.11.2基本使用
l 二维数组定义格式
n 数据类型[][] 数组名;
n 数据类型数组名[][]; 不推荐
n 数据类型[] 数组名[]; 不推荐
l 初始化方式
n 数据类型[][] 变量名 = new 数据类型[m][n];
u m:二维数组的长度(二维数组中一维数组的个数)
u n:二维数组中一维数组的长度
n 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
n 简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
publicclassDemo01ArrayArray {
publicstaticvoidmain(String[]args) {
// 数据类型[][]数组名 = {{元素...},{元素...},{元素...},...};
int[][]arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9} };
System.out.println(arr);// [[I@104c575
System.out.println(arr.length);//二维数组中的一维数组的个数
System.out.println(arr[0]);// [I@3fa5ac
System.out.println(arr[0].length);
System.out.println(arr[1]);// [I@95cfbe
System.out.println(arr[2]);// [I@179dce4
//我如何获取到一个二维数组的元素呢?
System.out.println(arr[0][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][0]);
}
}
1.11.3二维数组的遍历
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
publicclassDemo02ArrayArrayTest {
publicstaticvoidmain(String[]args) {
// 定义二维数组
int[][]arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9} };
// 二维数组中的一维数组名称:二维数组名[索引]
// arr[0]其实就是二维数组中的第一个一维数组的名称
// arr[1]其实就是二维数组中的第二个一维数组的名称
// arr[2]其实就是二维数组中的第三个一维数组的名称
// for (intx = 0; x <arr[0].length; x++) {
//System.out.println(arr[0][x]);
// }
//System.out.println("hello");//输出内容并换行
//System.out.println("world");//输出内容并换行
//System.out.print("hello");//输出内容不换行
//System.out.print("world");//输出内容不换行
/*
// 第一个一维数组的元素
for (int x = 0; x <arr[0].length;x++) {
System.out.print(arr[0][x] +" ");
}
System.out.println();
// 第二个一维数组的元素
for (int x = 0; x <arr[1].length;x++) {
System.out.print(arr[1][x] +" ");
}
System.out.println();
// 第三个一维数组的元素
for (int x = 0; x <arr[2].length;x++) {
System.out.print(arr[2][x] +" ");
}
System.out.println();
*/
/*for(inty=0; y<3; y++) {
for (int x = 0; x <arr[y].length;x++) {
System.out.print(arr[y][x]+ " ");
}
System.out.println();
}*/
for(inty=0;y<arr.length;y++) {
for(intx= 0;x <arr[y].length;x++) {
System.out.print(arr[y][x] +" ");
}
System.out.println();//换行
}
}
}
- java随机数Random, 数组
- java中的随机数Random
- java Random随机数
- java中的随机数Random
- java中的随机数Random
- java中的随机数Random
- java中的随机数Random
- JAVA随机数Random
- java中的随机数Random
- java Random 随机数
- Java 随机数生成 Random
- JAVA-Random获取随机数
- Java Random 随机数
- java中的随机数Random
- java中的随机数Random
- java中的随机数Random
- java中的随机数Random
- Java Random 随机数
- 爬虫系列20.Celery
- 在Ubuntu 16.04下搭建开发环境
- CentOS 7.0下使用yum安装MySQL
- 爬虫系列21.Pyside模块
- lxml.etree--用Xpath获取静态文本
- java随机数Random, 数组
- 分布式文件系统与HDFS笔记
- IT界的三大定律
- ConcurrentHashMap原理
- C语言中三目运算符的结合性问题
- java排序之 --- 冒泡排序
- PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION
- golang基础-go对数据库的增删改查操作
- Android应用程序的调试方法