ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度
泛型
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单
ArrayList
优点
- 支持自动改变大小的功能
- 可以灵活的插入元素
- 可以灵活的删除元素
局限性
- 跟一般的数组比起来,速度上差些
通用方法
方法 | 代码 |
---|---|
添加元素 | add(index,data) |
添加其他集合的元素 | addAll(int index,CollectionE>c |
移除特定对象的第一个匹配项 | remove(Object o) |
删除元素 | remove(index) |
修改元素 | set(index,data) |
获取元素 | get(index) 配合for循环 |
元素排序 | Collections.sort(ArrayList) |
Demo
创建一个类Person:name age属性
创建ArrayList对象保存多个Person对象
1.统计年龄大于30的人数
2.统计名字中有张的人数
import java.lang.reflect.Array;
import java.util.ArrayList;
//创建一个类Person:name age属性
//创建ArrayList对象保存多个Person对象
//1.统计年龄大于30的人数
//2.统计名字中有张的人数
public class MyClass {
public static void main(String[] args){
//定义两个变量用来记录人数
int ageCount = 0;
int zhangCount = 0;
//赋予相应的姓名与年龄
Person p1 = new Person("古天乐",34);
Person p2 = new Person("张家辉",26);
Person p3 = new Person("关羽",46);
Person p4 = new Person("刘备",13);
Person p5 = new Person("张飞",78);
//创建数组保存数据
ArrayList<Person> people = new ArrayList<>();
people.add(p1);
people.add(p2);
people.add(p3);
people.add(p4);
people.add(p5);
//判读年龄与姓名
for (Person temp:people){
if (temp.age > 30){
ageCount++;
}
//判断名字中是否含有“张”
if (temp.name.contains("张")){
zhangCount++;
}
}
//将结果输出
System.out.println();
System.out.println("年龄大于30的人数:"+ageCount+"人");
System.out.println("名字中含有张的人数:"+zhangCount+"人");
}
}
class Person {
//定义变量
String name;
int age;
//创建有参构造方法
public Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("姓名:"+name+" 年龄:"+age);
}
}
网友评论