一、什么是arryaylist类
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
写法:
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> a =new ArrayList<>(); // 初始化
E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型
二、Arraylist的应用
ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法:
添加元素
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites);
}
访问元素
访问 ArrayList 中的元素可以使用 get() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.get(1)); // 访问第二个元素
}
修改元素
如果要修改 ArrayList 中的元素可以使用 set() 方法
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Taobao");
sites.add("Weibo");
sites.set(1, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}
删除元素
如果要删除 ArrayList 中的元素可以使用 remove() 方法:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Taobao");
sites.add("Weibo");
sites.remove(1); // 删除第2个元素
System.out.println(sites);
}
}
随机点名不重复
import java.util.*;
public class Studentlianxi {
public static void main(String[] args) {
//使用list集合生成一个随机数组
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;
}
}
}
}