1.引入
对象数组:数组中,存储的是对象;
//Student.java
//创建Student类,利用Student类创建对象,再将对象存入数组
public class Student{
private String name;
private int age;
public void getName(){
..};
public void getAge(){
...};
}
//TestStuArray.java
Student[] arr = new Student[3]; //1.创建Student类型的数组,动态初始化,数组长度为3,可存放3个Student类对象;
Student stu1 = new Student();//2.利用Student类创建stu对象;
Student stu2 = new Student();
Student stu3 = new Student();
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
for(int i=0;i<arr.length;i++){
sout(arr[i]);//注:直接打印每一个对象,会打印出他们的地址值;
Student temp = arr[i]; //创建一个Student对象temp,来接收每一个数组中的对象,方便代码的书写、调用成员方法;
sout(temp.getName()+" "+temp.getAge());//通过temp对象来访问成员方法
}
集合和数组的特点对比:
- 集合的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变;
- 集合与数组的区别:
- 共同点:都用于存储数据;
- 不同点:数组的容量是固定的;集合的容量是可变的;
- 使用场景:
- 数组:明确存入的数据,不经常发生变化,数量明确时使用;
- 集合:数据经常发生变化,容器长度经常变化,不明确数量时使用;
2. 集合基础
2.1 ArrayList
2.1.1 集合的创建
- 创建形式1:
ArrayList 变量名 = new ArrayList();
//创建
ArrayList list = new ArrayList(); //使用ArrayList类创建对象;
list.add("123"); //此种创建形式,集合内可以存储任意类型的数据;
list.add(123);
list.add(true);
-
创建形式2:
ArrayList<数据类型> 变量名 = new ArrayList<数据类型>();
<>:泛型
- 限制存入集合数据的数据类型;
- 泛型中不能存放基本数据类型,但可以放基本数据类型对应的包装类;
基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character
//创建
ArrayList<String> list = new ArrayList<String>(); //jdk7之前,后面的<>需要加入数据类型;
ArrayList<String> list = new ArrayList<>(); //jdk7之后,后面的<>中,数据类型可省略,会自动匹配;
list.add("123");
list.add(123);//报错,不是String类型;
2.1.2 集合的常用方法
-
增:
add()方法
:向数组添加元素-
//add(元素),将元素添加到集合末尾; ArrayList<String> list = new ArrayList<>(); list.add("123"); list.add("456"); sout(list);// [123,456]
-
//add(索引位置,元素),将元素添加到指定的索引位置; ArrayList<String> list = new ArrayList<>(); list.add("111"); list.add("222"); list.add(0,"555"); sout(list);// [555,111,222]
-
-
删:
remove()方法
:删除一个元素,并返回…-
//remove(元素),删除指定元素,返回是否成功; ArrayList<String> list = new ArrayList<>(); list.add("abc"); list.add("123"); sout(list);//[abc,123] boolean del1 = list.remove("abc");//true boolean del2 = list.remove("zzz");//false,集合中不存在这个元素; sout(list);//[123]
-
//remove(索引号),删除指定索引位置的元素,返回被删除的元素; ArrayList<String> list = new ArrayList<>(); list.add("abc"); list.add("123"); String s = list.remove(0); //一般,删除的元素没有意义,所以不需要接
-