0
点赞
收藏
分享

微信扫一扫

Java学习篇12_Scanner、Random、ArrayList类

三千筱夜 2023-06-28 阅读 47


上一篇博客:封装

目录

  • API概述
  • Scanner类
  • Random类
  • ArrayList类

开始

一、API概述

API(Application Programming Interface),应用程序编程接口

Java API是一本程序员的字典,是JDK供给我们使用的类的说明文档。

这些类将底层的代码封装起来,我们不需要关心这些类是如何实现的,只要知道如何使用就行

Java学习篇12_Scanner、Random、ArrayList类_数据

查找使用方法

  • 搜索
  • 看包(Java.lang下的类不需要的包,其他的需要)
  • 看类的解释说明
  • 学习构造方法
  • 使用成员的方法

二、Scanner类

  1. 什么是Scanner类

一个可以解析基本类型和字符串的简单文本扫描器

例如类似C中的scanf函数,System.in从键盘读入一个字符串

Scanner sc = new Scanner(System.in);
//备注:System.in 系统输入指的是通过键盘录入数据。 
int i = sc.nextInt();

  1. 引用类型使用步骤
  • 导包
  • 创建对象
  • 调用方法

import 包名.类名;
如 import java.util.Scanner;

	数据类型 变量名 = new 数据类型(参数列表);
如 Scanner sc = new Scanner(System.in);

	变量名.方法名();
如 int i = sc.nextInt();

  1. Scanner使用步骤

package DemoArrayList;

import java.util.Scanner;

public class Demo01_Scanner {
    public static void main(String[] args) {
        //创建键盘录入数据的对象
        Scanner sc= new Scanner(System.in);
        //接收数据
        System.out.println("请输入一个数:");
        int num = sc.nextInt();
        //输出数据
        System.out.println("输入的数"+num);

    }
}

Java学习篇12_Scanner、Random、ArrayList类_System_02

  1. 练习
  • 求和
  • 取最值

package DemoArrayList;

import java.util.Scanner;

public class Demo02_Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("输入第一个数字:");
        int num1 = sc.nextInt();

        System.out.println("输入第二个数字:");
        int num2 = sc.nextInt();

        int sum = num1 + num2;
        System.out.println("和为:"+ sum);
    }
}

package DemoArrayList;

import java.util.Scanner;

public class Demo03_Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入第一个数据:");
        int num1 = sc.nextInt();

        System.out.println("请输入第二个数据:");
        int num2 = sc.nextInt();
        
        System.out.println("请输入第三个数据:");
        int num3 = sc.nextInt();

        int temp = num1>num2? num1:num2;
        int max = temp>num3? temp:num3;
        System.out.println("三个数最大值:"+ max);
    }
}

  1. 匿名对象
  • 概念:

创建对象时,只有创建对象的语句,没有把对象的地址值赋值给某个变量,只有new Student();

  • 应用场景:

创建匿名对象直接调用方法,一个匿名对象,只能使用一次。new Scanner(System.in).nextInt(); 匿名对象可以直接作为方法的参数和返回值

  • 作为参数

package DemoArrayList;

import java.util.Scanner;

public class Demo04_AnonymousObject {
    public static void main(String[] args) {
        //普通方式
        Scanner sc  = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        sc.nextInt();

        //匿名对象作为方法接受的参数

        input(new Scanner(System.in));
    }

    public static void input(Scanner sc){
        System.out.println(sc);
    }
}

Java学习篇12_Scanner、Random、ArrayList类_java_03

  • 作为返回值

package DemoArrayList;

import java.util.Scanner;

public class Demo05_ReturnObject {
    public static void main(String[] args) {
        Scanner sc = getScanner();
        System.out.println(sc);
        //调用方法,返回地址,sc类型为对象
    }
    public static Scanner getScanner(){
        //普通方法
//        Scanner sc = new Scanner(System.in);
//
//        return sc;

        //匿名对象方法

        return new Scanner(System.in);

    }
}

Java学习篇12_Scanner、Random、ArrayList类_数据_04

三、Random类

  1. 什么是Random类

此类的实例用于生成伪随机数

java Random r = new Random();int i = r.nextInt()

  1. 使用步骤
  • 查看类—》java.util.Random :该类需要 import导入使后使用
  • 查看构造方法—》public Random() :创建一个新的随机数生成器。
  • 查看成员方法—》public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。

package DemoArrayList;

import java.util.Random;

public class Demo06_Random {
    public static void main(String[] args) {
        Random r = new Random();

        for (int i = 0; i < 3; i++) {
            int num = r.nextInt(10);
            //产生0-9之间的整数
            System.out.println(num);
        }
    }
}

  1. 练习
  • 获取1~n的三个随机数,包含n

package DemoArrayList;

import java.util.Random;

public class Demo06_Random {
    public static void main(String[] args) {
        int n =50;
        Random r = new Random();

        for (int i = 0; i < 3; i++) {
            int num = r.nextInt(n)+1;
            //产生0-9之间的整数
            System.out.println(num);
        }
    }
}

  • 猜数字小游戏

package DemoArrayList;
/*
游戏开始时,会随机生成一个1-100之间的整数 number 。
玩家猜测一个数字 guessNumber ,会与 number 作比 较,
系统提示大了或者小了,直到玩家猜中,游戏结束。
*/

import java.util.Random;
import java.util.Scanner;

public class Demo07_GuessNumGame {
    public static void main(String[] args) {
        Random r = new Random();
        int num = r.nextInt(100)+1;
        while(true){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你猜的数字:");
            int guess = sc.nextInt();

            if(guess > num){
                System.out.println("太大了~");
            }
            else if(guess < num){
                System.out.println("太小了~");

            }else{
                System.out.println("猜对了(^U^)ノ~YO");
                break;
            }

        }
        System.out.println("游戏结束~");

    }
}

Java学习篇12_Scanner、Random、ArrayList类_java_05

四、ArrayList类

  1. 引入

使用学生数组,存储三个学生对象,代码:

package DemoArrayList;

public class Student {

    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;

    }


    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

}

package DemoArrayList;

public class Demo07_StuArrayLIst {

    public static void main(String[] args) {
        Student[] stus = new Student[3];
        Student stu1 = new Student("曹操", 40);
        Student stu2 = new Student("刘备", 50);
        Student stu3 = new Student("孙权", 60);

        stus[0] = stu1;
        stus[1] = stu2;
        stus[2] = stu3;
        for (int i = 0; i < stus.length; i++) {
            Student s = stus[i];
            System.out.println(s.getName() + "-----" + s.getAge());

        }
    }
}

Java学习篇12_Scanner、Random、ArrayList类_java_06

目前为止,我们想要存储对象数据,选择容器只有对象数组

但是,数组的长度又是固定不能改变的

所以,Java提供了一个容器java.util.AyyarList集合类,可以更便捷的存储操作对象数据

  1. ArrrayList类

java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素

此类提供了一些方法来操作内部存储的元素

ArrayList中可不断添加元素,其大小也自动增长

  1. 使用ArrayLiat
  • 导包:import java.util.ArrayList;
  • 构造集合:ArrayList<...> list = new ArrayList<>();
  • 添加对应元素:list.add(...);

package DemoArrayList;

import java.util.ArrayList;

public class Demo08_ArrayListOne {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        String s1 = "迪丽热巴";
        String s2 = "古力娜扎";
        String s3 = "马尔扎哈";
        //刚开始创建的是一个空集合
        System.out.println(list);
        //添加元素
        list.add(s1);
        list.add(s2);
        list.add(s3);

        System.out.println(list);
    }
}

Java学习篇12_Scanner、Random、ArrayList类_数据_07

  1. 常用方法和遍历

对于元素的基本操作-----》增、删、查

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

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

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

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

package DemoArrayList;

import java.util.ArrayList;

public class Demo09_ArrayListTwo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Python");
        list.add("Java");
        list.add("C++");

        //返回指定索引的元素

        System.out.println("get:" + list.get(0));
        System.out.println("get:" + list.get(1));
        System.out.println("get:" + list.get(2));

        //返回集合中元素的个数

        System.out.println("size:" + list.size());

        //删除指定元素

        System.out.println("remove:" + list.remove(0));

        //遍历输出
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}

Java学习篇12_Scanner、Random、ArrayList类_System_08

  1. 如何存储基本数据

前面存储的是引用类型的String字符串

那么8种基本类型的数据怎么构造对应的集合?需要进行包装

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

Java学习篇12_Scanner、Random、ArrayList类_数据_09


Java学习篇12_Scanner、Random、ArrayList类_System_10


Java学习篇12_Scanner、Random、ArrayList类_数据_11

  1. 练习
  • 数值添加到集合

生成6个1~33之间的随机整数,添加到集合,并遍历出来

package DemoArrayList;

import java.util.ArrayList;
import java.util.Random;

public class Demo11_ArrayLIstFour {
    public static void main(String[] args) {
        Random r = new Random();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i <6 ; i++) {
            int rnum = r.nextInt(33)+1;
            list.add(rnum);


        }
        System.out.println(list);

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}

Java学习篇12_Scanner、Random、ArrayList类_数据_12

  • 对象添加到集合

自定义4个学生对象,添加到集合,并遍历

package DemoArrayList;

import java.util.ArrayList;

public class Demo12_ArrayLIstFive {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        Student s1 = new Student("古力娜扎",18);
        Student s2 = new Student("迪丽热巴",19);
        Student s3 = new Student("马尔扎哈",20);
        Student s4 = new Student("团听耐听",21);

        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);

        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.getName()+"-------"+s.getAge());
        }


    }
}

Java学习篇12_Scanner、Random、ArrayList类_java_13

  • 打印集合方法

定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照 {元素 @元素@元素}。

package DemoArrayList;

import java.util.ArrayList;

public class Demo13_ArrayListSix {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("团");
        list.add("听");
        list.add("耐");
        list.add("听");

        printArrayList(list);
    }
    public static void printArrayList(ArrayList<String> list){
        System.out.print("{");
        for (int i = 0; i <list.size() ; i++) {
            String s = list.get(i);

            if(i != list.size() - 1){
                System.out.print(s + "@");

            }else{
                System.out.println(s+ "}");
            }

        }
    }
}

Java学习篇12_Scanner、Random、ArrayList类_System_14

  • 获取集合方法

定义获取所有偶数元素集合的方法(ArrayList类型作为返回值)

package DemoArrayList;

import java.util.ArrayList;
import java.util.Random;

public class Demo14_ArrayListSeven {
    public static void main(String[] args) {
        Random r = new Random();
        ArrayList<Integer> list = new ArrayList<>();

        for (int i = 0; i <20 ; i++) {
            int rnum = r.nextInt(100);
            list.add(rnum);

        }
        System.out.println(list);

        ArrayList<Integer> arrayList = getArrayList(list);
        System.out.println(arrayList);
    }
    public static ArrayList<Integer> getArrayList(ArrayList<Integer> list){
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Integer num = list.get(i);
            if(num % 2 == 0){
                smallList.add(num);

            }
        }
        return smallList;
    }
}

Java学习篇12_Scanner、Random、ArrayList类_System_15

参照:B站黑马


举报

相关推荐

0 条评论