Java基础的重点知识-05-Scanner、Random、ArrayList类

文章目录

Scanner类

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

当我们要使用一个java.uitl包中的类的时候我们就需要导包。
想要用什么类就要进行导包

java 复制代码
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个参数:");
        int a = scanner.nextInt();
        System.out.println(a);
    }
}


匿名对象:

我们通过匿名创建对象的时候会不断的在推内存中开辟空间,这时会造成资源浪费。并且在下述代码中,在进行成员变量赋值的时候是赋值不上的,因为每次进行匿名对象的创建时,都是对一个新对象进行赋值,在取值过程也是新对象获取值,当然会取不到值。

java 复制代码
package demo01;

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

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

    public Student(String name) {
        this.name = name;
    }

    public Student(int age) {
        this.age = age;
    }

    public Student() {
    }

    public static void main(String[] args) {
        new Student().setName("小明");
        new Student().setAge(18);
        System.out.println(new Student().getName());
        System.out.println(new Student().getAge());
    }
}

Random类

于生成伪随机数

这里用一个猜数字的小游戏来进行举例:

  • 在程序开始时,设定一个1~100的随机数,利用count来设定猜数的次数,用for循环来进行流程控制。
java 复制代码
public class Main {

    public static void main(String[] args) {
        // 系统产生一个随机数1‐100之间的。
        Random r = new Random();
        int number = r.nextInt(100) + 1;
        int count = 7;
        for (int i = 1; i <= count; i++) {
            // 键盘录入我们要猜的数据
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要猜的数字(1‐100):");
            int guessNumber = sc.nextInt();
            // 比较这两个数据(用if语句)
            if (guessNumber > number) {
                System.out.println("你猜的数据" + guessNumber + "大了");
            } else if (guessNumber < number) {
                System.out.println("你猜的数据" + guessNumber + "小了");
            } else {
                System.out.println("恭喜你,猜中了");
                break;
            }
            System.out.println("你还有" + count + "次机会");
        }
    }
}

ArrayList类

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

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

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

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

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

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

代码示例:

java 复制代码
import java.util.ArrayList;

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

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

    public Student(String name) {
        this.name = name;
    }

    public Student(int age) {
        this.age = age;
    }

    public Student() {
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public static void main(String[] args) {
        ArrayList<Student> studentList = new ArrayList<>();
        Student student1 = new Student("小明", 18);
        Student student2 = new Student("小红", 19);
        Student student3 = new Student("小黄", 20);
        Student student4 = new Student("小张", 21);
        studentList.add(student1);
        studentList.add(student2);
        studentList.add(student3);
        studentList.add(student4);
        for (int i = 0; i < studentList.size(); i++) {
            System.out.println(studentList.get(i));
        }
        studentList.remove(student2);
        for (int i = 0; i < studentList.size(); i++) {
            System.out.println(studentList.get(i));
        }
        System.out.println(studentList);
    }
}

这里我们通过ArrayList中的add()方法将创建的学生对象放入ArrayList中,但是如果没有重写toString()方法的话,输出的就是学生对象的内存地址,重写toString()方法之后就会显示结果。这里我们所使用的是Student类作为泛型,通过size()方法,我们获取了studentList的集合大小,通过remove()方法我们删除了student2这个元素,再对集合进行了遍历。

重点:
ArrayList对象不能存储基本类型,只能存储引用类型的数据。

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

欢迎java热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。

相关推荐
pengzhuofan2 分钟前
第10章 Maven
java·maven
CoderCodingNo14 分钟前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法
百锦再34 分钟前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说37 分钟前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
Larry_Yanan38 分钟前
QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
开发语言·c++·笔记·qt·学习·ui·交互
壹佰大多1 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring
百锦再1 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
Want5951 小时前
C/C++大雪纷飞①
c语言·开发语言·c++
DokiDoki之父1 小时前
Spring—注解开发
java·后端·spring
CodeCraft Studio2 小时前
【能源与流程工业案例】KBC借助TeeChart 打造工业级数据可视化平台
java·信息可视化·.net·能源·teechart·工业可视化·工业图表