十七、Scanner类、Random类、ArrayList类

17.1 Scanner类

  • 什么是Scanner类?

    一个可以解析基本类型和字符串的简单文本扫描器。
    例如,以下代码使用户能够从 System.in 中读取一个数:

    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int i = sc.nextInt();
        }
    

    备注:System.in 系统输入指的是通过键盘录入数据。

  • Scanner类的使用步骤
    查看类

    import java.util.Scanner;//该类需要import导入后使用。
    

    查看构造方法

    public Scanner(InputStream source) ;//构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。
    

    查看成员方法

    public int nextInt() ;//将输入信息的下一个标记扫描为一个 int 值。 
    

    使用Scanner类,完成接收键盘录入数据的操作,代码如下:

    //1.导包
    import java.util.Scanner;
    public class demo4 {
        public static void main(String[] args) {
            //2.创建键盘录入数据的对象
            Scanner sc = new Scanner(System.in);
            //3.接收数据
            System.out.println("请输入一个整数:");
            int i = sc.nextInt();
            //4.输出数据
            System.out.println(i);
        }
    }
    

17.2 Random类

  • 什么是Random类?

    此类的实例用于生成伪随机数。
    例如,以下代码使用户能够得到一个随机数:

    Random r = new Random();
    int i = r.nextInt();
    
  • Random类的使用步骤
    查看类

    java.util.Random ;//该类需要 import导入后使用。 
    

    查看构造方法

    public Random() ;//创建一个新的随机数生成器。
    
    

    查看成员方法

    public int nextInt(int n) ;//返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。 
    

    使用Random类,完成生成3个10以内的随机整数的操作,代码如下:

    //1.导包
    import java.util.Random;
    public class demo5 {
        public static void main(String[] args) {
            //2.创建生成随机数的对象
            Random r = new Random();
            //3.随机生成一个数据
            int i = r.nextInt();
            //4.输出数据
            System.out.println(i);
        }
    }
    

17.3 ArrayList类

  • 什么是ArrayList类?

    java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

  • ArrayList类的使用步骤
    查看类

    java.util.ArrayList <E> ;//该类需要 import导入使后使用。 
    

    ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使 用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:

    ArrayList<String>,ArrayList<Student>
    

    查看构造方法

    public ArrayList() ;//构造一个内容为空的集合。
    

    基本格式:

    ArrayList<String> list = new ArrayList<String>();
    

    在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:

    ArrayList<String> list = new ArrayList<>();
    

    查看成员方法

    public boolean add(E e) ;//将指定的元素添加到此集合的尾部。 
    

    参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据 类型的对象。

    使用ArrayList类,存储三个字符串元素,代码如下:

    public static void main(String[] args) {
            //创建数组
            ArrayList<String> list = new ArrayList<>();
            //创建三个对象
            String s1 = "张三";
            String s2 = "李四";
            String s3 = "王五";
            //把对象添加到集合
            list.add(s1);
            list.add(s2);
            list.add(s3);
            //输出集合list
            System.out.println(list);
        }
    
  • 常用方法和遍历
    对于元素的操作,基本体现在——增、删、查。常用的方法有:

    • public boolean add(E e) :将指定的元素添加到此集合的尾部。

    • public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。

    • public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。

    • public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

      这些都是基本的方法,操作非常简单,代码如下:

      public static void main(String[] args) {
              //创建集合对象
              ArrayList<String> list = new ArrayList<>();
              //添加元素
              list.add("Hello");
              list.add("Java");
              list.add("World");
              //public E get(int index) :返回指定索引的元素
              System.out.println("get:"+list.get(0));
              System.out.println("get:"+list.get(1));
              System.out.println("get:"+list.get(2));
              //public int size():返回集合中的元素的个数     
              System.out.println("size:"+list.size());
              //public E remove(int index):删除指定索引处的元素,返回被删除的元素
              System.out.println("remove:"+list.remove(0));
              // 遍历输出     
              for(int i = 0;i < list.size();i++){
                  System.out.println(list.get(i));
              }
          }
      
  • 如何存储基本数据类型

    ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的 包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:

    基本类型 基本类型包装类
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean