1、Scanner类
Scanner类的作用是获取用户的输入
常用方法:
String next():将输入信息的下一个标记扫描为一个字符串
Int nextInt():将输入信息的下一个标记扫描为一个int
Double nextDouble():将输入信息的下一个标记扫描为double
String nextLine():扫描当前输入行
2、Random类
Random类的作用是生成随机数
常用方法:
int nextInt(int n):生成一个随机数,范围[0, n)
double nextDouble():生成一个随机小数[0.0, 1.0)
猜数字游戏
import java.util.Random;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args){
//使用Scanner类与Random类完成一个猜数字小游戏
Scanner sc=new Scanner(System.in);
//产生一个1--100之间的随机数
Random r=new Random();
int num=r.nextInt(100)+1;
//定义一个用来统计用户猜对了多少次
int count=0;
//不断执行循环,让用户输入要猜的数字并进行大小提示
do{
System.out.println("输入猜的数字: ");
int in=sc.nextInt();
if(in>num){
System.out.println("猜大了");
}else if(in<num){
System.out.println("猜小了");
}else{
System.out.println("恭喜你,猜对了");
break;
}
count++;
}while (true);
//结束循环表示用户猜对
System.out.println("你猜对了数字"+num+"用了"+count+"次");
}
}
3、ArrayList集合
1.ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。
2.对于ArrayList来说有一个尖括号<E>代表泛型。泛型也就是装在集合当中所有的元素,都是统一的什么类型。
注意:泛型只能是引用类型( Byte 、 Short 、Integer、Long 、Float 、Double 、Character、 Boolean),不能是基本类型(byte int short long float double boolean char)
3.常用方法
添加: add() 方法
查找: get() 方法 注意:数组的索引值从 0 开始。
修改: set()方法
删除:remove() 方法
长度: size() 方法
随机点名
import java.util.*;
public class two {
public static void main(String[] args) {
//可以使用Arrays的asList实现序列化一个集合
List<String> list= Arrays.asList("叶枫","饶政","郭汶广","王志刚","时力强","柴浩阳","王宁","雷坤恒",
"贠耀强","齐东豪","袁文涛","孙啸聪","李文彬","孙赛欧","曾毅","付临",
"王文龙","朱海尧","史艳红","赵冉冉","詹梦","苏真娇","张涛","王浩",
"刘发光","王愉茜","牛怡衡","臧照生","梁晓声","孔顺达","田野","宫帅龙",
"高亭","张卓","陈盼盼","杨延欣","李蒙惠","瞿新成","王婧源","刘建豪",
"彭习峰","胡凯","张武超","李炳杰","刘传","焦泽国");
//把list作为参数重新构建一个新的ArrayList集合
ArrayList<String> names=new ArrayList<>(list);
//使用random生成一个随机
Random random = new Random();
Scanner sc = new Scanner(System.in);
while (true) {
//如果集合没有元素
if (names.size() == 0) {
System.out.println("已抽查完");
break;
}
System.out.println("请输入Y 或者 y");
String input=sc.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;
}
}
}
}
自动装箱:基本类型-->包装类型
自动拆箱:包装类型-->基本类型
ArrayList数组的优缺点
因为ArrayList底层使用数组实现,所以优缺点与数组类似。
优点:
1、根据下标遍历元素效率较高。
2、根据下标访问元素效率较高。
3、在数组的基础上封装了对元素操作的方法。
4、可以自动扩容。
缺点:
1、插入和删除的效率比较低。
2、根据内容查找元素的效率较低。