1、Scanner类
Scanner类的作用是获取用户的输入
常用方法:
2、Random类
Random类的作用是生成随机数
常用方法:
案例:
package com.test;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
//使用Scanner和Random完成一个猜数字小游戏 ,猜1-100之间的数字
Scanner scanner=new Scanner(System.in);
//1.产生一个1-100之间的随机数
Random random=new Random();
int num=random.nextInt(100)+1;//随机10个数字0-99,然后+1,就是1-100
//定义一个用来统计用户猜对用了多少次
int count=0;
//2.不断执行循环,让用户输入要猜的数字并进行大小提示
do{
System.out.println("输入猜的数字:");
int in=scanner.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)
常用方法:
案例
package com.test01;
import java.util.*;
public class Test01 {
public static void main(String[] args) {
//可以使用Arrays
List<String> list= Arrays.asList("","","");
//把list作为参数重新构建一个新的ArrayList集合
ArrayList<String> names=new ArrayList<>(list);
//使用Scanner、Random、ArrayList完成一个不重合的点名程序
Random random=new Random();
Scanner scanner=new Scanner(System.in);
while (true){
//如果集合没有元素了,则结束循环
if(list.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;
}
}
}
}
自动装箱:基本类型-->包装类型
自动拆箱:包装类型-->基本类型
3、ArrayList数组的优缺点
因为ArrayList底层使用数组实现,所以优缺点与数组类似。
优点:
1、根据下标遍历元素效率较高。
2、根据下标访问元素效率较高。
3、在数组的基础上封装了对元素操作的方法。
4、可以自动扩容。
缺点:
1、插入和删除的效率比较低。
2、根据内容查找元素的效率较低。