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

embedded/2024/10/22 10:37:24/

文章目录

  • 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() {}@Overridepublic 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对象不能存储基本类型,只能存储引用类型的数据。

基本类型基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

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


http://www.ppmy.cn/embedded/51228.html

相关文章

项目总结-前端路由hash和history

项目总结-前端路由hash和history router模块 路由需要实现的功能 当浏览器地址发生变化的时候&#xff0c;切换页面点击浏览器后退前进的时候&#xff0c;网页内容发生变化刷新浏览器&#xff0c;网页加载当前路由对应内容 路由主要是通过监听事件&#xff0c;并利用js实现…

中断的输入和悬起行为

关于中断的输入和悬起行为&#xff0c;下列描述错误的是() A、当某中断的服务例程开始执行时&#xff0c;其悬起位会被硬件自动清除。 B、如果在某个中断得到响应之前&#xff0c;其悬起状态被清除了&#xff0c;则中断取消。 C、中断服务例程不可以在执行过程中把自己对应的中…

Windows环境利用 OpenCV 中 CascadeClassifier 分类器识别人眼 c++

Windows环境中配置OpenCV 关于在Windows环境中配置opencv的说明&#xff0c;具体可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程。 CascadeClassifier 分类器 CascadeClassifier 是 OpenCV 库中的一个类&#xff0c;它用于实现一种快速的物体检测算法&#xff0c;称…

windows11子系统Ubuntu 22.04.4子安装图形化界面

1、windows11家庭版本设置 打开虚拟机安装许可 2、Microsoft Store下载安装ubuntu 我使用的是22.04.4 LTS版本 3、 打开ubuntu 命令窗口 1、打开win11的命令行&#xff0c;在下拉三角下标&#xff0c;打开&#xff0c;可以看到有Ubuntu 的选项&#xff0c;点击即可进入linux命…

【WEEK16】Learning Objectives and Summaries【Spring Boot】【English Version】

Learning Objectives: Learning SpringBoot Learning Content: Reference video tutorials【狂神说Java】SpringBoot最新教程IDEA版通俗易懂Dubbo and Zookeeper Integration Learning time and outputs: Week16 TUE~FRI 2024.6.11【WEEK16】 【DAY2】Dubbo和Zookeeper集成第…

React 中的事件处理

React 中是如何处理事件的&#xff0c;现在下面简单的一段代码&#xff1a; export default function App() {const AList lazy(()>import(./List.js))const r useRef(null) const [show, setShow] useState(false);return (<><button onFocus{()>{setShow…

探索Sass:CSS的强大预处理器

探索Sass&#xff1a;CSS的强大预处理器 Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;是一个CSS预处理器&#xff0c;可以使CSS更加强大、简洁和高效。通过引入变量、嵌套、混合、继承等特性&#xff0c;Sass极大地改善了传统CSS的编写和管理方式。本文将深…

ROS中的TF是什么

在ROS (Robot Operating System) 中&#xff0c;tf::TransformBroadcaster 是一个用于发布坐标变换信息的重要类&#xff0c;尤其在处理机器人定位和导航数据时非常常见。tf::TransformBroadcaster 对象允许你广播从一个坐标系到另一个坐标系的变换关系&#xff0c;这对于多传感…