JAVA中ArrayList讲解及案例分析

本文介绍了Java中的ArrayList,它是一个动态数组,可以动态调整大小。文章详细阐述了ArrayList的使用方法,包括添加、删除、获取和判断元素,以及一个实际案例,演示如何在ArrayList中添加用户信息并查找特定用户。
摘要由CSDN通过智能技术生成

在java中ArrayList本质是以数组形式存储数据的,但其又不同于数组,数组一旦分配内存,长度大小不变,但ArrayList是可以预判当前的空间是否充足再决定要不要扩扩大内存空间的

1.ArrayList的特点、用法

ArrayList(见名知意,本质上是一个可动态修改的数组无固定的大小限制)类,继承于AbstractList,位于java.util包中,故在使用前需用import引入:

import java.util.ArrayList;

使用方法:ArrayList<E>  ObjectName =new  ArrayList<>();

-其中E表示泛型(只能是引用数据类型,若要使用基本数据类型必须将其转化成对应的包装类

-ObjectName(代表对象名eg:ArrayList<usre> list=new ArrayList<>();)

ArrayList提供的相关方法(方法很多,具体可在API文档中查询,下面说几个常用的)

(1)boolean add(E e) {} 

追加元素,返回值表示是否添加成功

(2)boolean remove(E e) {}

删除指定元素,返回值表示是否删除成功

(3)E remove(int index) {}

删除指定索引的元素,返回被删除元素

(4)E set(int index,E e) {}

修改指定索引的元素,返回原来的元素

(5)E get(nt index) {}

获取指定索引的元素

(6)int size( ) {}

返回集合中元素的个数

2.案例分析

需求:在ArrayList集合中添加一组元素(用键盘录入方式)并判断某个具体的元素是否在集合中,若存在则根据下标返回对应的信息,若不存再,则提示未查询到;

import java.util.ArrayList;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        //添加用户对象 判断是否存在
        ArrayList<usre> list=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入第"+(i+1)+"个用户的信息");
            usre u=new usre();
            System.out.println("请输入用户id");
            String id=sc.next();
            u.setId(id);
            System.out.println("请输入用户姓名:");
            String name=sc.next();
            u.setUsername(name);
            System.out.println("请输入用户密码:");
            String password=sc.next();
            u.setPassword(password);
            list.add(u);
        }
        for (int i = 0; i < list.size(); i++) {
            usre uu=list.get(i);
            System.out.println(uu.getId()+ "\t" + uu.getUsername()+ "\t" + uu.getPassword());
        }
        System.out.println("请输入你要查询的用户id:");
        String fid=sc.next();
        int flag=find(list,fid);
        if(flag!=-1)
        {
            System.out.println("此人信息如下:");
            System.out.println(list.get(flag).getId()+list.get(flag).getUsername());
        }
        else {
            System.out.println("未查询到此人!");
        }
    }
    public static int find(ArrayList<usre> list, String fid)
    {
        for (int i = 0; i < list.size(); i++) {
            usre uu=list.get(i);
            if(uu.getId().equals(fid))
            {
                return i;
            }
        }
        return -1;
    }
    public static class usre{
        private String id;
        private String username;
        private String password;

        public usre() {
        }

        public usre(String id, String username, String password) {
            this.id = id;
            this.username = username;
            this.password = password;
        }

        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }

       public String getUsername() {
            return username;
        }

       public void setUsername(String username) {
            this.username = username;
        }

       public String getPassword() {
            return password;
        }

       public void setPassword(String password) {
            this.password = password;
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值