集合:长度可以发生变化的容器 自动扩容
数组和集合区别
集合 | 数组 | |
长度 | 集合长度可变 | 数组长度固定 |
存储类型 | 只能存引用数据类型 | 可以存基本数据类型和引用数据类型 |
泛型:限定集合中存储数据的类型 只能存引用数据类型 打印的是集合中的内容,而不是地址值 ArrayList<String> list = new ArrayList<>();
public static void main(String[] args){
// 泛型:限定集合中存储数据的类型
// 只能存引用数据类型
// 打印的是集合中的内容,而不是地址值
//1 创建集合对象
ArrayList<String> list = new ArrayList<>();
//2 添加元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
// //3 删除元素
// list.remove("aaa"); //根据内容删除
// list.remove(0); //根据索引删除
// System.out.println(list);
//4 修改元素
list.set(1,"ddd"); // 把1索引上的修改为"ddd"
System.out.println(list);
}
ArrayList<Integer> list = new ArrayList<>(); 添加数字
list.size() 计算长度
自定义类
public static void main(String[] args){
//定义一个集合,添加一些学生对象,并进行遍历
//学生类的属性为:姓名,年龄
ArrayList<Student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
Student s = new Student();
System.out.println("请输入第"+(i+1)+"个学生的姓名:");
String name = sc.next();
System.out.println("请输入第"+(i+1)+"个学生的年龄:");
int age = sc.nextInt();
s.setName(name);
s.setAge(age);
list.add(s);
}
for (int i = 0; i < list.size(); i++) {
System.out.println("姓名:"+list.get(i).getName()+" 年龄:"+list.get(i).getAge());
}
}