ArrayList集合

为甚要有集合

  • 集合自动扩容
  • 集合存储数据类型的特点:只能存放引用数据类型,如果要存放基本数据类型,则要把其包装类去存放
  • 集合和数组的对比:
    1.长度:数组长度固定,集合长度可变
    2.存储类型:可存放基本数据类型和引用基本类型;集合是只可以存放引用数据类型,如果存放基本数据类型,要把它包装类

ArrayList类

泛型:限定集合中存储数据的类型

 

方法名

说明


boolean add(E e)

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

 

boolean remove(E e)

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


E remove(int index)

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


E set(int index,E e)

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

 

E get(int index)

获取指定索引的元素


int size()

集合的长度,也就是集合中元素的个数

综合练习

题目一:定义一个集合,添加字符串,并且进行遍历

ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
    if (i == list.size()-1){
        System.out.print(list.get(i));
    }else{
        System.out.print(list.get(i)+", ");
    }
}
System.out.println("]");
}
}

题目二:添加数字并进行遍历:定义一个集合,添加数字,并进行遍历

ArrayList<Integer> lst = new ArrayList<>();//创建一个集合
lst.add(1);//添加元素
lst.add(2);
lst.add(3);
lst.add(4);
System.out.print("[");//进行拼接
for (int i = 0; i < lst.size(); i++) {//遍历其中每一个元素
    if (i==lst.size()-1){
        System.out.print(lst.get(i));
    }else{
        System.out.print(lst.get(i)+", ");
    }
}
System.out.println("]");

练习难度增加

题目三:定义一个集合,添加一些学生对象,并且进行遍历。学生类的属性为:姓名,年龄。要求:键盘录入

分析点:进行键盘输入,然后注意创建的学生类要放在循坏里面,这样才会创建不同的学生对象。不然最后索引遍历会被覆盖

主要代码;
for (int i = 0; i < 2; i++) {
    Student s =new Student();
    System.out.println("请输入姓名");
    String name = sc.next();
    System.out.println("请输入年龄");
    int age = sc.nextInt();
    //把name和age给对象
    s.setName(name);
    s.setAge(age);
 //把对象的内容给集合
    list.add(s);
}

题目四:需求:main方法中定义一个集合,存放三个用户对象,用户属性为id,username,password。

要求:定义一个方法,根据id查找用户信息。如果存在,返回true,如果不存在,返回false

写方法分析:1.我要干嘛2.我干这件事需要什么才能完成3.调用处是否需要调用的结果

ArrayList<User> list = new ArrayList<>();
    //2.存入对象
    User u1 = new User("yangjia01","zhangsan","12334");
    User u2 = new User("yangjia02","lisi","123456");
    User u3= new User("yangjia03","wagqu","123yut");
    //3.存放到集合里
    list.add(u1);
    list.add(u2);
    list.add(u3);
    boolean flag = contains(list, "yangjia01");
    System.out.println(flag);
}
//写方法
//1.我要干嘛?查找id
//2.干这件事需要什么才能完成 在list找id 
//3.调用处是否需要调用方法的结果
public static boolean contains(ArrayList<User> list,String id){
    for (int i = 0; i < list.size(); i++) {
        if ( list.get(i).getId().equals(id)){
            return true;
        }
    }
    return false;
    }