ArrayList主要内容:
数组和集合的区别:
泛型
ArrayList集合常用方法
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1、创建Arraylist集合对象
ArrayList list=new ArrayList();
// 2、添加数据
list.add("Java");
list.add("Java");
list.add("黑马");
list.add("MySQL");
list.add(23.5);
System.out.println(list.get(3));
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println(list.remove(1));//删除某个索引位置的元素值,并返回被删除的元素值
list.remove("MySQL");//直接删除元素值
System.out.println(list);
//3、给指定索引位置插入元素
list.add(1,"赵敏");
System.out.println(list);
//4、修改某个索引位置处的元素值
Object a = list.set(0, "王宝强");
System.out.println(a);
System.out.println(list);
}
}
ArrayList集合案例:存储自定义类型的对象
ArrayList集合案例:元素搜索
package ArrayLsit;
public class Student {
private String studyNumber;
private String name;
private int age;
private String className;
public Student(){
}
public Student(String studyNumber, String name, int age, String className) {
this.studyNumber = studyNumber;
this.name = name;
this.age = age;
this.className = className;
}
public String getStudyNumber() {
return studyNumber;
}
public void setStudyNumber(String studyNumber) {
this.studyNumber = studyNumber;
}
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 String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
}
package ArrayLsit;
import java.util.ArrayList;
import java.util.Scanner;
/*
* 案例:学生信息系统:展示数据,并按照学号完成搜索
* 学生类信息(学号、姓名、性别、班级)
* 测试数据:
* "20180302","叶孤城",23,"护理一班"
* "20180303","东方不败",23,"推拿二班"
* "20180304","西门吹雪",26,"中药学四班"
* "20180305","梅超风",26,"神经科2班"
*
* */
public class ArrayListDemo4 {
public static void main(String[] args) {
// 1、定义学生类 构建对象封装数据
// 2、创建集合存储学生对象,创建学生对象封装学生信息
// 把学生对象添加到结合中去
ArrayList<Student> students=new ArrayList<>();
students.add(new Student("20180302","叶孤城",23,"护理一班"));
students.add(new Student("20180303","东方不败",23,"推拿二班"));
students.add(new Student("20180304","西门吹雪",26,"中药学四班"));
students.add(new Student("20180305","梅超风",26,"神经科2班"));
// 3、遍历这些学生信息展示
System.out.println("学号\t名称\t年龄\t班级\t");
for (int i = 0; i < students.size(); i++) {
Student s= students.get(i);
System.out.println(s.getStudyNumber()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
}
//4、定义方法完成按照学号的搜索功能
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请您输入学号查询学生对象:");
String studyNumber = sc.next();
// 5、调用方法查询
Student s= getStudentById(students,studyNumber);
// 6、判断s中是否存在学生对象地址
if(s==null){
System.out.println("对不起,查无此人");
}else{
System.out.println("您查询的学生信息如下:");
System.out.println(s.getStudyNumber()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
}
}
}
/**
* 根据学生的学号查询学生对象返回
* @param students 存储全部学生对象的集合
* @param studyNumber 搜索的学生的学号
* @return 学生对象 | null
*/
public static Student getStudentById(ArrayList<Student> students,String studyNumber){
// 1、遍历全部学生对象
for (int i = 0; i < students.size(); i++) {
Student s= students.get(i);
//2、询问当前遍历的这个学生对象的学号,是否是我们要找的学号
if(s.getStudyNumber().equals(studyNumber)){
// 这个s代表的学生对象,就是我们要找的,返回它
return s;
}
}
// 查无此人
return null;
}
}