1. ArrayList基本使用
- ArrayList的基本使用
- 了解泛型,以及泛型作用
- 学生管理系统编写
- 添加学生
- 删除学生
- 查找学生
- 修改学生
- 判断学号是否存在的方法
1. ArrayList入门
import java.util.ArrayList;
/*
ArrayList:
1.包结构
java.util.ArrayList
2.继承结构
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
3.描述
可调整大小的数组的实现
4.构造方法
ArrayList() 构造一个初始容量为十的空列表。
ArrayList(int initialCapacity)构造具有指定初始容量的空列表。
5.常用成员方法
boolean add(E e) 将指定的元素追加到此列表的末尾。
*/
public class Demo01 {
public static void main(String[] args) {
//定义数组存放48位位同学的成绩
int [] scores = new int[48];
//就业班 同学增加了15 这是班级有63位同学
int[] socres2 = new int[63];
//后期 还有同学进来 5 个 此时班级有68位同学
int[] scores3 = new int[68];
//需要一个可边长的数组,也就是说,当数据变多的时候,数组自动边长,当数据变少的时候自动变短
//创建集合对象
//ArrayList() 构造一个初始容量为十的空列表。
ArrayList list = new ArrayList();
//ArrayList(int initialCapacity)构造具有指定初始容量的空列表。
ArrayList list1 = new ArrayList(32);
//boolean add(E e) 将指定的元素追加到此列表的末尾。
ArrayList list2 = new ArrayList();
list2.add("宋永强");
list2.add("岳晨阳");
System.out.println(list2);
list2.add(true);
list2.add(123);
list2.add(520);
list2.add(13.14);
list2.add('我');
System.out.println(list2);
}
}
1.2 泛型
import java.util.ArrayList;
/*
约束集合的数据类型,用<数据类型> 在创建对象的时候,放在类名的后面
尖括号中的数据类型只能是引用数据类型
这个尖括号叫泛型<>
泛型的作用:
就是用来约束,集合中存储数据的数据类型
*/
public class Demo02 {
public static void main(String[] args) {
ArrayList list2 = new ArrayList();
list2.add("宋永强");
list2.add("岳晨阳");
System.out.println(list2);
list2.add(true);
list2.add(123);
list2.add(520);
list2.add(13.14);
list2.add('我');
System.out.println(list2);
ArrayList<String> list = new ArrayList<String>();
list.add("宋永强");
list.add("岳晨阳");
/*list.add(true);
list.add(3.14);
list.add('爽');*/
System.out.println(list);
}
}
1.3 插入元素获取元素
import java.util.ArrayList;
/*
boolean add(E e) 将指定的元素追加到此列表的末尾。
void add(int index, E element) 在此列表中的指定位置插入指定的元素。
集合的底层是可变长数组,是数组就有索引,从0开始,到集合存储元素个数减一
E get(int index) 返回此列表中指定位置的元素。
*/
public class Demo03 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("韩淳逸");
list.add("孙宇宁");
list.add("宋永强");
list.add("刘胜阳");
list.add("毛玉龙");
list.add("汪越");
list.add("王俊");
list.add("李爽");
list.add("孔泉");
System.out.println(list);
//void add(int index, E element) 在此列表中的指定位置插入指定的元素。
//根据index插入元素 ,指定index位置处的元素,以及后面元素都要后移以为
list.add(1,"范靖");
System.out.println(list);
// E get(int index) 返回此列表中指定位置的元素。
String s = list.get(8);
System.out.println(s);
}
}
1.4 遍历集合
import java.util.ArrayList;
/*
获取集合中所有元素,打印到控制台
集合的底层是可变长数组,是数组就有索引,从0开始,到集合存储元素个数减一
int size() 返回此列表中的元素数。
*/
public class Demo04 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("韩淳逸");
list.add("孙宇宁");
list.add("宋永强");
list.add("刘胜阳");
list.add("毛玉龙");
list.add("汪越");
list.add("王俊");
list.add("李爽");
list.add("孔泉");
list.add(1,"范靖");
list.add(2,"蔡赛中");
list.add(3,"曹世伦");
//使用循环遍历集合
for (int i = 0; i < 9; i++) {
//System.out.println(i);
String s = list.get(i);
System.out.println(s);
}
System.out.println("--------------");
int size = list.size();
System.out.println(size);
System.out.println("--------------");
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
}
}
1.5 修改元素
import java.util.ArrayList;
/*
E set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
根据索引修改元素,返回被修改的元素
*/
public class Demo05 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("韩淳逸");
list.add("孙宇宁");
list.add("宋永强");
list.add("刘胜阳");
list.add("毛玉龙");
list.add("汪越");
list.add("王俊");
list.add("李爽");
list.add("孔泉");
list.add("范靖");
list.add("蔡赛中");
list.add("曹世伦");
System.out.println(list);
String s = list.set(7, "李爽爽");
System.out.println(list);
System.out.println(s);//李爽
}
}
1.6 删除元素
import java.util.ArrayList;
/*
E remove(int index) 删除该列表中指定位置的元素。
根据索引删除集合中的元素,返回值被删除的元素
boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
*/
public class Demo06 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("林青霞");
list.add("张曼玉");
list.add("王祖贤");
list.add("张曼玉");
list.add("蔡徐坤");
list.add("林志玲");
list.add("东方不败");
//E remove(int index) 删除该列表中指定位置的元素。
System.out.println(list);
String s = list.remove(0);
System.out.println(list);
System.out.println(s);
//boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
/*boolean b = list.remove("张曼玉");
System.out.println(list);
System.out.println(b);*/
//boolean remove(Object o) 倒叙遍历 删除的也是第一个出现的
System.out.println(list);
for (int i = list.size() - 1; i >= 0; i--) {
String s1 = list.get(i);
if (s1.equals("张曼玉")){
list.remove("张曼玉");break;
}
}
System.out.println(list);
}
}
1.7 练习
import java.util.ArrayList;
import java.util.Scanner;
/*
存储学生对象并遍历
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
学生的姓名和年龄来自于键盘录入
*/
public class Demo07 {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> list = new ArrayList<>();
//创建键盘录入的对象
Scanner sc = new Scanner(System.in);
//使用循环创建学生对象存储到集合中
for (int i = 0; i < 3; i++) {
System.out.println("请输入学生的姓名:");
String name = sc.next();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
//创建学生对象
Student student = new Student(name,age);
//添加到集合中
list.add(student);
}
//遍历集合获取学生信息
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getName()+"..."+student.getAge());
}
}
}
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;
}
}
1.8 删除元素的练习
import java.util.ArrayList;
/*
删除集合中所有的张三
*/
public class Demo08 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("韩淳逸");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("孙宇宁");
list.add("宋永强");
list.add("刘胜阳");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("张三");
list.add("毛玉龙");
list.add("汪越");
list.add("王俊");
list.add("李爽");
list.add("孔泉");
}
}