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热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。

相关推荐
yyytucj10 分钟前
python--列表list切分(超详细)
linux·开发语言·python
等一场春雨21 分钟前
Java设计模式 八 适配器模式 (Adapter Pattern)
java·设计模式·适配器模式
肖田变强不变秃39 分钟前
C++实现有限元计算 矩阵装配Assembly类
开发语言·c++·矩阵·有限元·ansys
一弓虽43 分钟前
java基础学习——jdbc基础知识详细介绍
java·学习·jdbc·连接池
王磊鑫43 分钟前
Java入门笔记(1)
java·开发语言·笔记
喜欢猪猪1 小时前
分布式与微服务:构建现代应用的关键架构
开发语言·php
硬件人某某某1 小时前
Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
java·开发语言·社区团购小程序·团购小程序·java社区团购小程序
程序员徐师兄1 小时前
Java 基于 SpringBoot 的校园外卖点餐平台微信小程序(附源码,部署,文档)
java·spring boot·微信小程序·校园外卖点餐·外卖点餐小程序·校园外卖点餐小程序
kucupung1 小时前
【C++基础】多线程并发场景下的同步方法
开发语言·c++
chengpei1471 小时前
chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确
java·前端·chrome·spring boot·json