ArrayList常用方法

本文介绍了ArrayList类的基本用法,如添加元素,并展示了如何结合Scanner和Random类实现一个随机点名程序,确保点名过程中名字不重复。示例代码详细解释了整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

ArrayList 继承了 AbstractList ,并实现了 List 接口。

一、添加元素

ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法

代码如下:

public class testList {
    public static void main(String[] args) {
        //创建ArrayList对象,泛型为String类型
        ArrayList<String> list = new ArrayList<>();
        //添加元素
        list.add("添");
        list.add("加");
        list.add("元");
        list.add("素");
        System.out.println(list);
    }
}


运行结果:

[添, 加, 元, 素]

二、完成随机抽取一个名字

知道了如何使用ArrayList添加,那么结合Scanner类和Random类完成随机抽取一个名字

1.使用Arrays.aslist录入内容

public static void main(String[] args) {
        List<String> list = Arrays.asList(
                "佐菲","初代","赛文","杰克","艾斯","泰罗","奥特之父","奥特之母","雷欧","阿斯特拉",
                "奥特之王","乔尼亚斯"," 爱迪"," 史考特"," 查克"," 贝斯"," 葛雷"," 帕瓦特"," 哉阿斯"," 迪迦 ",
                "戴拿","盖亚","阿古茹","纳伊斯","高斯","杰斯提斯","雷杰多","奈克斯特","奈克赛斯","诺亚",
                "奈欧斯","赛文21","麦克斯","杰诺","梦比优斯","希卡利","赛罗","赛迦","银和","维克特利","捷德",
                "欧布","罗索","布鲁","格丽乔");

2.把list作为参数重新构建一个ArrayList集合

  public static void main(String[] args) {
        List<String> list = Arrays.asList(
                "佐菲","初代","赛文","杰克","艾斯","泰罗","奥特之父","奥特之母","雷欧","阿斯特拉",
                "奥特之王","乔尼亚斯"," 爱迪"," 史考特"," 查克"," 贝斯"," 葛雷"," 帕瓦特"," 哉阿斯"," 迪迦 ",
                "戴拿","盖亚","阿古茹","纳伊斯","高斯","杰斯提斯","雷杰多","奈克斯特","奈克赛斯","诺亚",
                "奈欧斯","赛文21","麦克斯","杰诺","梦比优斯","希卡利","赛罗","赛迦","银和","维克特利","捷德",
                "欧布","罗索","布鲁","格丽乔");
        ArrayList<String> name=new ArrayList<>(list);

3.使用Scanner、Random、ArrayList完成一个不重复的点名程序

 public static void main(String[] args) {
        List<String> list = Arrays.asList(
                "佐菲","初代","赛文","杰克","艾斯","泰罗","奥特之父","奥特之母","雷欧","阿斯特拉",
                "奥特之王","乔尼亚斯"," 爱迪"," 史考特"," 查克"," 贝斯"," 葛雷"," 帕瓦特"," 哉阿斯"," 迪迦 ",
                "戴拿","盖亚","阿古茹","纳伊斯","高斯","杰斯提斯","雷杰多","奈克斯特","奈克赛斯","诺亚",
                "奈欧斯","赛文21","麦克斯","杰诺","梦比优斯","希卡利","赛罗","赛迦","银和","维克特利","捷德",
                "欧布","罗索","布鲁","格丽乔");
        ArrayList<String> name=new ArrayList<>(list);
        Random ra=new Random();
        Scanner sc=new Scanner(System.in);

4.循环判断   如果集合中没有元素了,则结束循环

public static void main(String[] args) {
        List<String> list = Arrays.asList(
                "佐菲","初代","赛文","杰克","艾斯","泰罗","奥特之父","奥特之母","雷欧","阿斯特拉",
                "奥特之王","乔尼亚斯"," 爱迪"," 史考特"," 查克"," 贝斯"," 葛雷"," 帕瓦特"," 哉阿斯"," 迪迦 ",
                "戴拿","盖亚","阿古茹","纳伊斯","高斯","杰斯提斯","雷杰多","奈克斯特","奈克赛斯","诺亚",
                "奈欧斯","赛文21","麦克斯","杰诺","梦比优斯","希卡利","赛罗","赛迦","银和","维克特利","捷德",
                "欧布","罗索","布鲁","格丽乔");
        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;
            }
        }

    }

如果不想继续抽取则随便输入另外一个字母结束抽查

### Java ArrayList 常用方法总结 #### 创建 ArrayList 对象 可以通过无参构造方法创建一个空的 `ArrayList` 实例。 ```java ArrayList<E> list = new ArrayList<>(); ``` 此方式允许泛型参数指定存储对象的具体类型[^2]。 --- #### 添加元素到列表 使用 `add(E e)` 方法向 `ArrayList` 中添加单个元素;如果需要批量添加,则可使用 `addAll(Collection<? extends E> c)` 方法。 ```java // 单个添加 list.add("元素"); // 批量添加 list.addAll(Arrays.asList("元素1", "元素2")); ``` --- #### 遍历 List 集合 通过传统的 `for` 循环结合索引访问的方式遍历集合中的每一个元素: ```java for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } ``` 上述代码展示了如何利用 `size()` 获取长度以及 `get(int index)` 访问特定位置上的值[^1]。 还可以采用增强型 `for-each` 或者流式处理等方式完成更简洁高效的迭代操作。 --- #### 清空所有元素 调用 `clear()` 函数能够快速移除当前实例内的全部条目而不影响其本身结构特性,即容量不会缩减至零。 ```java list.clear(); ``` 该行为使得后续仍能继续正常增删改查新数据项而无需重新初始化容器变量[^3]。 --- #### 判断两个列表是否相等 借助于继承自 Object 类别的 equals(Object o) 成员函数比较两份独立但可能具有相同内容序列的对象之间是否存在逻辑意义上的匹配关系。 ```java boolean isEqual = list1.equals(list2); System.out.println(isEqual); // 输出 true 如果两者完全一致则返回true 否则false ``` 注意这里不仅考量顺序而且严格区分大小写敏感度等因素[^4]。 --- #### 删除指定位置处或者满足条件的第一个目标实体 分别对应 removeAtPosition 和 RemoveByCondition 的语义表达如下所示: 删除固定下标的成员单元: ```java if (!list.isEmpty()) { int positionToRemove = ... ; list.remove(positionToRemove ); } ``` 依据给定谓词筛选并剔除首个符合条件的结果记录: ```java Predicate<String> condition = s -> s.startsWith("A"); list.removeIf(condition); ``` 以上就是关于 Java 编程语言当中非常重要的集合框架组成部分之一——动态数组类 ArrayList 的一些基础却实用的功能介绍及其典型应用场景举例说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值