一、Scanner类
注意:Scanner类是属于引用数据类型
引用数据类型的使用:
与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。
数据类型 变量名 = new 数据类型();
//Scanner sc = new Scanner();
每种引用数据类型都有其功能,我们可以调用该类型实例的功能。
变量名.方法名();
l Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
//创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
//获取数字
System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n);
//获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
}
}
运行结果如下图所示。
nextInt()、next()的理解
nextInt():只读取数值,剩下”\n”还没有读取,并将cursor放在本行中
next():只读空格之前的数据,并且cursor指向本行
next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
二、random类
注意:
random() 方法返回随机生成的一个实数,它在[0,1)范围内。
语法:
import random random.random()
例题:
import random
//生成第一个随机数
print “random() : “, random.random()
// 生成第二个随机数
print “random() : “, random.random()
运行后输出结果为:
random() : 0.281954791393 random() : 0.309090465205
例题:猜数字小游戏
package test6;
import java.util.Random;
import java.util.Scanner;
public class TestRandom {
public static void main(String[] args) {
//使用Scanner和Random完成一个猜数字小游戏,猜1-100之间的数字
Scanner scanner = new Scanner(System.in);
//1.产生一个1-100之间的随机数
Random random = new Random();
//随机100个数字0-99,然后+1 就是1-100
int num = random.nextInt(100)+1;
//定义一个用户用来统计用户猜对用了几次
int count = 0;
//2.不断执行循环,让用户输入要猜的数组并进行大小提示
do{
System.out.println("请输入猜的数字");
int input = scanner.nextInt();
if(input>num){
System.out.println("猜大了");
}else if(input<num){
System.out.println("猜小了");
}else{
System.out.println("恭喜你,猜对了");
break;
}
count++;
}while(true);
//3.结束循环表示用户猜对并提示猜对次数
System.out.println("你猜对了数字"+num+"用了"+count+"次");
}
}
三、ArrayList集合
1. ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
2. ArrayList 继承了 AbstractList ,并实现了 List 接口。
3. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList; // 引入 ArrayList 类 ArrayList<E> objectName =new ArrayList<>(); // 初始化
- E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
- objectName: 对象名。
4. ArrayList 是一个数组队列,提供了相关的添加、删除、修改等功能。
5. ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。
如果我们要存储其他类型,而 <E> 只能为引用数据类型,这时我们就需要使用到基本类型的包装类。
基本类型对应的包装类表如下:
基本类型 | 引用类型 |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
访问元素 :
访问 ArrayList 中的元素可以使用 get() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites.get(1)); // 访问第二个元素
}
}
注意:数组的索引值从 0 开始。
执行输出结果为:
pinduoduo
添加元素:
ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites);
}
}
执行输出结果为:
[weipinhui, pinduoduo, Taobao, jingdong]
修改元素:
如果要修改 ArrayList 中的元素可以使用 set() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
sites.set(2, “Weixin”); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}
执行输出结果为:
[weipinhui, pinduoduo, Weixin, jingdong]
删除元素:
如果要删除 ArrayList 中的元素可以使用 remove() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}
执行输出结果为:
[weipinhui, pinduoduo, Taobao]
计算大小:
如果要计算 ArrayList 中的元素数量可以使用 size() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites.size());
}
}
执行输出结果为:
4
例题: 随机点名不重复案例
public static class ArrayListTest{
public static void main(String[] args){
//可以使用Arrays的asList实现序列化一个集合
List<String> list= Arrays.asList("玛卡巴卡","汤波哩波波","唔西迪西","依古比古","小点点");
//把list作为参数重新构建一个新的ArrayList集合
ArrayList<String> names=new ArrayList<>(list);
//使用Scanner、Random、ArrquList完成一个不重复的点名程序
Random random=new Random();
Scanner scanner=new Scanner(System.in);
while (true){
//如果集合中没有元了,则结束循环
if(names.size()==0){
System.out.println("已完成所有学生抽查,抽查结束请重新开始!");
break;
}
System.out.println("确认点名请输入Y/y");
String input = scanner.next();
if (input.equals("Y")|| input.equals("y")){
//随机一个集合的下标
int index = random.nextInt(names.size());
System.out.println("本次抽到: "+names.get(index));
//该学生已被抽到,把他从集合中移除
names.remove(index);
}else {
System.out.println("本次抽查结束!");
break;
}
}
}
}
确认点名请输入Y/y
y
本次抽到: 依古比古
确认点名请输入Y/y
y
本次抽到: 小点点
确认点名请输入Y/y
n
本次抽查结束!Process finished with exit code 0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130157.html