day07_API_Scanner Random ArrayList
day07【Scanner类、Random类、ArrayList类】
一. API
-
API的使用
-
点击左上角的显示
-
点击索引标签
-
在搜索框中输入类名
二. Scanner
- 为什么有很多包?
- 因为Java有很多个类, 常用的类都存放在java.lang包中, 这个包中的内容可以直接使用.
- 而其他包中的内容, 要使用的话都要先, 导包
- Scanner的使用
(1) 获取int类型数据
-
导包
import java.util.Scanner;
-
创建对象
// System.in : 默认指向控制台
// 创建键盘录入对象
Scanner sc = new Scanner(System.in); -
调用方法进行键盘录入
// 获取控制台输入int类型的数据
int a = sc.nextInt(); // 阻塞, 等待我们进行键盘录入System.out.println("获取到的数据为: " + a);
(2) 获取String类型的数据
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 调用方法, 获取键盘录入的字符串 nextLine()
String s = sc.nextLine();
System.out.println("获取到的字符串为: " + s);
- Scanner的注意事项
-
获取的类型和输入的类型不一致, 则会报错.
- InputMismatchException: 输入不匹配异常
-
先获取键盘录入的int, 再获取String
// 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 先获取int int i = sc.nextInt(); System.out.println("获取的int为: " + i); // 解决方案: 创建两次键盘录入对象 Scanner sc2 = new Scanner(System.in); // 再获取String String s = sc2.nextLine(); System.out.println("获取的String为: " + s);
三. Random
- 作用: 用来获取随机数
Random的使用
-
导包
import java.util.Random;
-
创建对象
// 创建随机数对象
Random r = new Random(); -
调用方法 nextInt
// nextInt(int n): 获取从0(包含) ~ n(不包含)之间的随机数 for (int i = 0; i < 10; i++) { // 获取随机数 (1 - 10) int j = r.nextInt(10) + 1; System.out.println(j); }
四. Scanner和Random的练习
-
键盘录入两个数据并求和.
import java.util.Random;
import java.util.Scanner;/*
游戏开始时,会随机生成一个1-100之间的整数number 。
玩家猜测一个数字guessNumber ,会与number 作比
较,系统提示大了或者小了,直到玩家猜中,游戏结束。通过Random获取1-100之间的随机数number // 没猜中, 就继续猜 // 猜中了, 就不猜了 while (true) { 通过Scanner获取键盘录入的数字, guessNumber if (guessNumber > number) { 提示: 大了 } else if (guessNumber < number) { 提示: 小了 }else { 提示: 猜中了 break; } }*/
public class Demo02_猜数字小游戏 {
public static void main(String[] args) {
// 创建Random对象
Random r = new Random();
// 创建键盘录入Scanner对象
Scanner sc = new Scanner(System.in);
// 取1-100之间的随机数
int number = r.nextInt(100) + 1;
while (true) {
System.out.println("请输入您猜测的数字: (如果想退出请输入-1)");
// 获取键盘录入的数字
int guessNumber = sc.nextInt();if (guessNumber == -1) { System.out.println("游戏结束, 欢迎下次再来!~"); break; } // 比较两个数字, 并输出大了, 小了, 猜中了 if (guessNumber > number) { System.out.println("大了"); }else if (guessNumber < number) { System.out.println("小了"); }else { System.out.println("恭喜, 猜中了!~"); // 猜中了就不猜了, 需要结束while循环 break; } } }}
-
键盘录入大小猜大小
import java.util.Random;
import java.util.Scanner;public class Demo03_猜大小小游戏 {
public static void main(String[] args) {
// 随机获取1~10之间的随机数, 猜测大了或者小了
// 提示是否猜测正确// 创建随机数对象 Random r = new Random(); // 获取1~10之间的随机数 int number = r.nextInt(10) + 1; // 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请猜测大(1)或者小(0):"); int myGuess = sc.nextInt(); // 如果随机数是小于等于5, 就是小 if (number <= 5) { // 判断我的猜测是否是小 // 如果是小就猜测正确 if (myGuess == 0) { System.out.println("猜测正确, 随机数为: " + number); }else { // 如果不是小就猜测错误 System.out.println("猜测错误, 随机数为: " + number); } }else { // number > 5 if (myGuess == 1) { System.out.println("猜测正确, 随机数为: " + number); }else { System.out.println("猜测错误, 随机数为: " + number); } } }}
-
两个游戏合并的加强案例
import java.util.Random;
import java.util.Scanner;public class Demo04_加强版游戏 {
public static void main(String[] args) {System.out.println("欢迎来到游戏大厅, 我们为您提供了两款热门游戏."); System.out.println("如果想玩猜数字, 请按1"); System.out.println("如果想玩猜大小, 请按2"); System.out.println("如果不想玩游戏, 请按0"); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); int i = sc.nextInt(); // switch switch (i) { case 1: // 猜数字 System.out.println("欢迎来到猜数字小游戏, 祝您游戏愉快!~"); guessNumber(); break; case 2: // 猜大小 System.out.println("欢迎来到猜大小小游戏, 祝您游戏愉快!~"); guessBigSmall(); break; case 0: // 退出 System.out.println("欢迎下次再来!~"); break; default: System.out.println("脑残!再见."); break; } } /** * 猜数字小游戏 */ public static void guessNumber() { // 创建Random对象 Random r = new Random(); // 创建键盘录入Scanner对象 Scanner sc = new Scanner(System.in); // 取1-100之间的随机数 int number = r.nextInt(100) + 1; while (true) { System.out.println("请输入您猜测的数字: (如果想退出请输入-1)"); // 获取键盘录入的数字 int guessNumber = sc.nextInt(); if (guessNumber == -1) { System.out.println("游戏结束, 欢迎下次再来!~"); break; } // 比较两个数字, 并输出大了, 小了, 猜中了 if (guessNumber > number) { System.out.println("大了"); }else if (guessNumber < number) { System.out.println("小了"); }else { System.out.println("恭喜, 猜中了!~"); // 猜中了就不猜了, 需要结束while循环 break; } } } /** * 猜大小小游戏 */ public static void guessBigSmall() { // 随机获取1~10之间的随机数, 猜测大了或者小了 // 提示是否猜测正确 // 创建随机数对象 Random r = new Random(); // 获取1~10之间的随机数 int number = r.nextInt(10) + 1; // 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请猜测大(1)或者小(0):"); int myGuess = sc.nextInt(); // 如果随机数是小于等于5, 就是小 if (number <= 5) { // 判断我的猜测是否是小 // 如果是小就猜测正确 if (myGuess == 0) { System.out.println("猜测正确, 随机数为: " + number); }else { // 如果不是小就猜测错误 System.out.println("猜测错误, 随机数为: " + number); } }else { // number > 5 if (myGuess == 1) { System.out.println("猜测正确, 随机数为: " + number); }else { System.out.println("猜测错误, 随机数为: " + number); } } }}
五. ArrayList(重点)
-
了解对象数组
-
ArrayList集合的特点
存放的数据的特点 存放数据的类型 长度
数组 同一种数据类型的多个元素 可以存放基本数据类型, 也可以存放引用数据类型 长度是固定的
集合 可以存放不同数据类型的多个元素
(但是不会存不同类型, 依然存储的是相同类型的多个元素) 只能存放引用数据类型 长度是可变的
- ArrayList集合的使用
(1) 创建ArrayList对象
-
构造方法
// ArrayList()
// 使用空参构造创建对象
ArrayList list = new ArrayList(); -
泛型
-
ArrayList
: 就是泛型 -
作用: 用来限定集合中元素的数据类型, E是什么类型, 集合中就只能添加这个类型的元素
// 使用泛型之后, 集合的创建
ArrayListlist = new ArrayList<>();
// 等号右边的泛型中可以不写数据类型, 只写<>, 默认和等号左边的类型是一致的.
-
(2) 操作ArrayList集合
-
add: 添加
// public boolean add(E e) :将指定的元素添加到此集合的尾部。
-
remove: 删除
// public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
-
get: 查询
// public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
-
size: 长度
// arr.length: 获取数组的长度属性
// public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
(3) 遍历ArrayList集合
// 让for循环中i的值, 和集合中的索引, 一一对应
for (int i = 0; i < list.size(); i++) {
// 遍历可以做任意操作
System.out.println(list.get(i));
}
(4) 集合存储基本数据类型
-
基本数据类型的包装类
基本数据类型 包装类类型(引用数据类型)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean -
生成JavaBean中的内容
alt + insert

浙公网安备 33010602011771号