day07_API_Scanner Random ArrayList

day07【Scanner类、Random类、ArrayList类】

一. API

  1. API的使用

  2. 点击左上角的显示

  3. 点击索引标签

  4. 在搜索框中输入类名

二. Scanner

  1. 为什么有很多包?
  • 因为Java有很多个类, 常用的类都存放在java.lang包中, 这个包中的内容可以直接使用.
  • 而其他包中的内容, 要使用的话都要先, 导包
  1. Scanner的使用

(1) 获取int类型数据

  1. 导包

    import java.util.Scanner;

  2. 创建对象

    // System.in : 默认指向控制台
    // 创建键盘录入对象
    Scanner sc = new Scanner(System.in);

  3. 调用方法进行键盘录入

    // 获取控制台输入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);
  1. 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的使用

  1. 导包

    import java.util.Random;

  2. 创建对象

    // 创建随机数对象
    Random r = new Random();

  3. 调用方法 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的练习

  1. 键盘录入两个数据并求和.

    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;
             }
         }
     }
    

    }

  2. 键盘录入大小猜大小

    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);
             }
         }
     }
    

    }

  3. 两个游戏合并的加强案例

    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(重点)

  1. 了解对象数组

  2. ArrayList集合的特点

     存放的数据的特点                                	存放数据的类型                	长度    
    

数组 同一种数据类型的多个元素 可以存放基本数据类型, 也可以存放引用数据类型 长度是固定的
集合 可以存放不同数据类型的多个元素
(但是不会存不同类型, 依然存储的是相同类型的多个元素) 只能存放引用数据类型 长度是可变的

  1. ArrayList集合的使用

(1) 创建ArrayList对象

  • 构造方法

    // ArrayList()
    // 使用空参构造创建对象
    ArrayList list = new ArrayList();

  • 泛型

    • ArrayList : 就是泛型

    • 作用: 用来限定集合中元素的数据类型, E是什么类型, 集合中就只能添加这个类型的元素

      // 使用泛型之后, 集合的创建
      ArrayList list = 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

posted @ 2019-05-16 22:48  途友  阅读(108)  评论(0)    收藏  举报