ArrayList(集合)
ArrayList(集合)
集合概述:
-
集合可以直接存储引用数据类型,不能直接存储基本数据类型,如果要存储基本数据类型,需要将基本数据类型变成对应的包装类再存储在集合里面。
-
集合可根据存储的内容的长度 自动扩容,即集合长度可变。
10.1 ArrayList成员方法
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素,返回值true添加成功 |
Boolean remove(E e) | 删除指定元素,返回值表示是否删除成功 |
E remove(int index ) | 删除指定索引元素,返回被删除的元素 |
E set(int index ,E e) | 修改指定索引下的元素,返回原来的元素 |
E get ( int index) | 获取指定索引的元素 |
int size() | 集合长度,也就是集合中的元素个数 |
public static void main(String[] args) {
//< > 泛型:限定集合中存储数据的类型
// 打印对象不是地址值,而是集合中存储数据内容
//在展示的时候会拿[]把所有的数据进行包裹
// 创建集合对象
ArrayList<String> list = new ArrayList<>();
// 1.添加元素,返回值true添加成功
boolean aa = list.add("aa");
System.out.println(aa);//true
list.add("bb");
list.add("cc");
list.add("dd");
System.out.println(list);//[aa,bb,cc,dd]
// 删除指定索引的元素,返回被删的元素
String remove = list.remove(0);
System.out.println(remove);//aa
System.out.println(list);//[bb,cc,dd]
// 删除指定元素,返回是否成功
boolean remove1 = list.remove("bb");
System.out.println(remove1);// true
System.out.println(list);//[cc,dd]
// 修改指定索引下的元素,返回原来的元素
String s = list.set(0, "你好");
System.out.println(s);//cc
list.set(1,"小维");
System.out.println(list);//[你好, 小维]
// 查询元素
String s1 = list.get(0);
System.out.println(s1);//你好
// 集合长度 list.size()
// 遍历集合
for (int i = 0; i < list.size(); i++) {
//i表示索引
//list.get(i)表示元素
String s2 = list.get(i);
System.out.println(s2);// 你好 小维
}
}
10.2 集合练习
10.2.1添加字符串
定义一个集合,添加字符串,并遍历
遍历格式:[元素1,元素2,…]
public static void main(String[] args) {
// 创建集合
ArrayList<String> list =new ArrayList<>();
// 添加元素
list.add("你");
list.add("好");
list.add("小孔");
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("]");//[你,好,小孔]
}
10.2.2添加数字
定义一个集合,添加数字,并遍历
遍历格式:[元素1,元素2,…]
注意:添加数字,需要对应的包装类
public static void main(String[] args) {
//创建集合
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(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("]");//[1,2,3]
}
10.2.3添加学生对象并遍历
需求:定义一个集合,添加一些学生对象,并进行遍历
学生类的属性为:姓名、年龄
public class Student {
private String name;
private int age;
public Student() {}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() { return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) { this.age = age;}
}
public class StudentTest {
public static void main(String[] args) {
// 创建集合
ArrayList<Student> list = new ArrayList<>();
Student s1 = new Student("小孔",18);
Student s2 = new Student("大聪明",18);
// 添加元素
//即 将创建的s1/s2对象的地址值传给集合
list.add(s1);
list.add(s2);
// 遍历集合
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
//System.out.println(student);
//arraryListdemo.Student@677327b6
System.out.println(student.getName()+","+student.getAge());
}
}
10.2.4
需求:定义一个集合,添加一些学生对象,并进行遍历
学生类的属性为:姓名、年龄
对象数据来自键盘录入
学生JavaBean类 如上10.2.3
public class StudentTestPro {
public static void main(String[] args) {
// 创建对象
ArrayList<Student> list = new ArrayList<>();
// 创建学生对象并录入信息添加到集合中
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生个数:");
int studentNum = sc.nextInt();
for (int i = 0; i < studentNum; i++) {
Student student = new Student();
System.out.print("请输入姓名:");
String name = sc.next();
System.out.print("请输入年龄:");
int age = sc.nextInt();
// 把录入的信息赋值给学生对象
student.setAge(age);
student.setName(name);
// 把学生对象添加到集合中
//即 将创建的student对象的地址值添加到集合里面
list.add(student);
}
// 遍历集合 打印出学生信息
for (int i = 0; i < list.size(); i++) {
// i:索引; list.get(i):元素(学生对象)
Student stuInfo = list.get(i);
System.out.println(stuInfo.getName()+stuInfo.getAge());
}
}
}