ArrayList类的定义
是一个可以动态修改的数组,没有固定的大小和限制,我们可以添加或删除元素。
格式:ArrayList<E> a=new ArrayList<>();
使用方法
常用方法和遍历
对于元素的操作,基本体现在--增、删、查。常用的方法有:
pubtic boolean add(E e):将指定的元素添加到上集合的尾部。
public E remove(int index):返回此集合中指定位置上的元素。返回被删除的元素
public E get(int index):返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数,遍历集合时,可以控制索引范围,防止越界。
增加
//添加
ArrayList<String> arr=new ArrayList<String>();
arr.add("张三");
arr.add("李四");
arr.add("王五");
System.out.println(arr);
删除
//删除
ArrayList<String> arr=new ArrayList<String>();
arr.add("张三");
arr.add("李四");
arr.add("王五");
arr.remove(1);//删除的是索引为1的数据,即删除该"李四"的信息
System.out.println(arr);
改写
//修改
ArrayList<String> arr=new ArrayList<String>();
arr.add("张三");
arr.add("李四");
arr.add("王五");
arr.set(1,"赵六");//修改索引为1的信息,即把“李四”修改成“赵六”
System.out.println(arr);
获取指定索引处的元素,把他输出
ArrayList<String> arr=new ArrayList<String>();
arr.add("张三");
arr.add("李四");
arr.add("王五");
//返回指定处的索引
System.out.println(arr.get(0));
System.out.println(arr.get(1));
System.out.println(arr.get(2));
完成随机抽取一个名字
知道了如何使用ArrayList添加,那么结合Scanner类和Random类完成随机抽取一个名字
1、使用Arrays.aslist录入内容
2、把list作为参数重新构建一个ArrayList集合
public static void main(String[] args) {
List<String> list = Arrays.asList(
"张三","丽斯","李四","王五","干辣椒","顾安安","钢化融合","嘎~嘎~嘎~","gargle","计划书","耗时间","驾驶员将","防晒霜","暗黑风","个人然而","荣华府","哎好烦");
ArrayList<String> name=new ArrayList<>(list);
Random ra=new Random();
Scanner sc=new Scanner(System.in);
循环判断 如果集合中没有元素了,则结束循环
public static void main(String[] args) {
List<String> list = Arrays.asList(
"张三","丽斯","李四","王五","干辣椒","顾安安","钢化融合","嘎~嘎~嘎~",
"gargle","计划书","耗时间","驾驶员将","防晒霜","暗黑风","个人然而","荣华府","哎好烦");
ArrayList<String> name=new ArrayList<>(list);
Random ra=new Random();
Scanner sc=new Scanner(System.in);
while (true){
//如果集合中没有元素了,则结束循环
if(name.size()==0){
System.out.println("已完成所有名字抽查,抽查结束请重新开始");
break;
}
System.out.println("确认点名请输入Y/y");
String input=sc.next();
if(input.equals("y") || input.equals("y")){
//随机一个集合下标
int index=ra.nextInt(name.size());
System.out.println("本次抽到"+name.get(index));
//该名字已被抽到,把他从集合中移除
name.remove(index);
}else {
System.out.println("本次抽查结束");
break;
}
}
}
如果不想继续抽取则随便输入另外一个字母结束抽查