一,final
final表示最终的,可以修饰类,方法,变量
final修饰类,表示此类为最终类,不能被继承
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
...
}
final修饰方法,表示此方法为最终方法,不能被重写
class User{
public final String getName(){
return "user:"张三";
}
}
class Reader extends User{
@Override
public final String getName(){
return "李四"; //compilation error: overridden method is final
}
}
final修饰变量,表示此变量为最终变量及常量
public static final String NAME = "张三";
NAME = new String("李四"); //invalid compilation error
二,Scanner类用于读取键盘输入
使用方法
1、首先需要构造一个Scanner类的对象,并且与标准输入流System.in关联
Scanner sc=new Scanner(System.in);
2、调用Scanner类对象sc的方法从输入流中获取你需要的输入
说明:
当创建了一个Scanner类对象之后,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给对象sc,若要获取需要的内容,调用sc的方法即可
常用方法
1、nextInt()只读取数值,读取完后 没有读取并且光标放在本行
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
每次可以只输入一个数字,回车确认,例如:“123”,只能被一个nextInt读取。
也可以输入一组数字,例如:“123 456 789”,每个数字之间用空格(一个或多个空格)隔开,可被多个nextInt()读取,空格及回车不会被读取。(注:输入数字中不能夹杂除数字、空格、回车之外的其他字符,否则会报错)
基本使用方法
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//从键盘接收数据
System.out.print("输入数据:");
String str = scan.next();
System.out.println("输入的数据为:" + str);
}
}
三,Random类生成随机数
random.nextInt(n):随机生成一个正整数,整数范围[0,n)如果想生成其他范围的数据,可以在此基础上进行加减
基本使用方法
// 创建对象
// Random r = new Random();
Random r = new Random(1111);
for (int x = 0; x < 10; x++) {
// int num = r.nextInt();
int num = r.nextInt(100) + 1;
System.out.println(num);
四,ArrayList类
特点:1.是线程不安全,不同步
2.可以储存null值
3.获取元素个数方法用size()方法获取
1.实现的接口
ArrayList 实现了 List 接口(Collection(接口)->List(接口)->ArrayList(类)),底层使用的是数
组;而HashMap 现了Map接口(Map(接口)->HashMap(类)),底层使用的是Hash算法存储数据。
2.存储元素
ArrayList 以数组的方式存储数据,里面的元素是有顺序,可以重复的;而 HashMap 将数据以键值
对的方式存储,键的哈希码(hashCode)不可以相同,相同后面的值会将前面的值覆盖,值可以重复,里面的元素无序。
3.添加元素的方法
ArrayList用add(Object object)方法添加元素,而HashMap用put(Object key, Object value)添加元素4.默认的大小和扩容
在Java7中,ArrayList的默认大小是 10个元素,HashMap的默认大小是16个元素(必须是2
的幂)
基本使用方法
public static void main(String args[]){
//创建数组,存值
List<String> list= Arrays.asList("叶枫","饶政","郭汶广","王志刚","时力强","柴浩阳","王宁","雷坤恒",
"贠耀强","齐东豪","袁文涛","孙啸聪","李文彬","孙赛欧","曾毅","付临",
"王文龙","朱海尧","史艳红","赵冉冉","詹梦","苏真娇","张涛","王浩",
"刘发光","王愉茜","牛怡衡","臧照生","梁晓声","孔顺达","田野","宫帅龙",
"高亭","张卓","陈盼盼","杨延欣","李蒙惠","瞿新成","王婧源","刘建豪",
"彭习峰","胡凯","张武超","李炳杰","刘传","焦泽国");
//将list存入集合
ArrayList<String> name=new ArrayList<>(list);
//创建Scanner Random
Scanner sc=new Scanner(System.in);
Random r=new Random();
//遍历
while(true){
//提示用户输入
System.out.println("请输入Y/y点名:");
//获取用户输入
String b = sc.next();
//判断是否点名
if(b.equals("Y") || b.equals("y")){
//生成随机
int a = r.nextInt(name.size());
System.out.println("您点到了:"+name.get(a));
name.remove(a);
}else{
System.out.println("点名结束");
break;
}
}
}