文章目录
学习日记(常用类之 Random 类以及 Lambda 表达式)
一、Random 类
1. 常用 API
功能:用于在程序中获取随机数。
常用方法 | 说明 |
---|---|
public int nextInt(int bound) | 随机生成 0-bound 的整数,不包括 bound |
public double nextDouble() | 随机生成 0-1 的浮点型数据,不包括 1 |
2. 生成指定区间随机整数(浮点数)
生成指定区间随机整数(浮点数)的方法:
3. 猜数字
需求:随机生成一个 1-100 之间的整数,提示用户猜数字,猜中结束游戏。
package com.residue.manyclass03;
import java.util.Random;
import java.util.Scanner;
public class RandomDemo02 {
public static void main(String[] args) {
//需求:随机生成一个 1-100 之间的整数,提示用户猜数字,猜中结束游戏。
Random random = new Random();
int x = random.nextInt(100) + 1; //随机数 x
//System.out.println(x);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字(1-100):");
if (!scanner.hasNextInt()) {
System.out.println("输入的不是数字!");
System.exit(0);
}
while (scanner.hasNextInt()) {
int num = scanner.nextInt();
if (num < x) {
System.out.println("猜小了!请重新输入(1-100):");
} else if (num > x) {
System.out.println("猜大了!请重新输入(1-100):");
} else if (num == x) {
System.out.println("恭喜你猜对了!该数字为:" + x);
break;
}
}
scanner.close();
}
}
二、Lambda 表达式
1. 概述
Lambda 表达式是 JDK 8 开始后的一种新语法形式。
作用:简化匿名内部类的代码写法。
简化格式:(匿名内部类被重写方法的形参列表) -> {被重写方法的方法体代码}。
好处:Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为一种更紧凑的代码风格,使 Java 语言表达能力得到了提升。
注意:Lambda 表达式只能简化函数式接口的匿名内部类的写法形式。
函数式接口:首先必须是接口,其次接口中有且仅有一个抽象方法,通常会在接口上加上一个 @FunctionalInterface
的注解,有该标志表示该接口必须是满足函数式接口。
2. 省略规则
Lambda 表达式的省略写法:进一步在 Lambda 表达式的基础上继续简化。
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时 () 也可以省略。
- 如果 Lambda 表达式的方法体只有一行代码,可以省略大括号不写,同时要省略分号(代码语句后的分号)。
- 如果 Lambda 表达式的方法体只有一行代码,可以省略大括号不写,同时省略分号(代码语句后的分号),但此时注意,如果这行代码是 return 语句,必须省略 return 不写。
注意:
- Lambda 表达式只能简化函数式接口的匿名内部类的写法形式。
2. Lambda 表达式简化快捷键:选中接口名 + Alt + Enter
。