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;
}