系列文章目录
文章目录
一、集合的基本使用
1、为什么要有集合?
集合的容量可以动态改变,这意味着可以根据需要添加或删除元素,而不需要预先设定固定的大小。相比之下,数组的长度是固定的,一旦创建,其大小就不能改变,这在一定程度上限制了其在某些情况下的使用。
2、集合存储数据类型的特点
集合可以存放引用数据类型,但是不可以存放基本数据类型,若想存放基本数据类型,要先把基本数据类型变为包装类。
3、集合和数组的对比
二、ArrayList集合
1、查看API帮助文档
从上图可知ArrayList是在java.util包中,我们需要导包,而且定义时“ArrayList”后面需要加尖括号里面的“E”代表泛型,我们需要在定义时写上泛型。泛型的作用是限定集合中存储数据的类型
2、创建集合的对象
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<>();//JDK7之后省略后面泛型
System.out.println(list);
注意:打印对象不是地址值,而是集合中存储数据内容,在展示的时候会拿[]把所有的数据进行包裹。
3、ArrayList成员方法
其中contains方法需要注意,可查看这篇文章详述ArrayList类中的contains()方法及原理。
查看上面博客需要对equals有更深理解,可学习Java中equals详解
三、ArrayList练习
1、添加数字并遍历
需求:定义一个集合,添加数字,并进行遍历。遍历格式参照:[元素1,元素2,元素3]。
分析:由于无法直接添加基本数据类型,所以要了解基本数据类型对应的包装类。
byte — Byte short — Short int — Integer long — Long float — Float double — Double char — Character boolean — Boolean
注意:jdk5以后 int与Integer 之间是可以互相转化的
public static void main(String[] args) {
//1.创建集合
ArrayList<Integer> list = new ArrayList<>();
//2.添加元素
//jdk5以后 int Integer 之间是可以互相转化的
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
//3.遍历集合
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("]");
}
2、添加学生对象(自定义的对象)并遍历
需求:定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄。
public static void main(String[] args) {
//1.创建集合
ArrayList<Student> list = new ArrayList<>();
//2.创建学生对象
Student s1 = new Student("zhangsan",23);
Student s2 = new Student("lisi",24);
Student s3 = new Student("wangwu",25);
//3.添加元素
list.add(s1);
list.add(s2);
list.add(s3);
//4.遍历集合
for (int i = 0; i < list.size(); i++) {
//i 索引 list.get(i) 元素/学生对象
Student stu = list.get(i);
System.out.println(stu.getName() + ", " + stu.getAge());
}
}