List接口实现类ArrayList
创建ArrayList集合对象
ArrayList arrList = new ArrayList();
当我们使用构造方法创建一个对象时默认情况下ArrayList底层的数组初始化大小为10;当添加新元素时会检测当前数组是否存满,如果存满了则创建一个新数组,将原有数组中的内容复制到新数组中,继续存储
ArrayList集合操作
当我们使用remove()移除一个元素时,如果传入的是整数(int)按照下标来移除元素(remove(2)),如果我们要按照元素的内容来移除一个整数元素的话,需要传入整数对象(Integer)(remove(new Integer(2)))
练习:
public class Student {
int stuNo;
String stuName;
int stuAge;
String stuSex;
public Student() {
}
public Student(int stuNo, String stuName, int stuAge, String stuSex) {
super();
this.stuNo = stuNo;
this.stuName = stuName;
this.stuAge = stuAge;
this.stuSex = stuSex;
}
public int getStuNo() {
return stuNo;
}
public void setStuNo(int stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getStuAge() {
return stuAge;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
@Override
public String toString() {
return "Student [学号:" + stuNo + ", 姓名:" + stuName + ", 年龄:" + stuAge + ", 性别:" + stuSex + "]";
}
}
/*
*/Student的操作类
import java.util.ArrayList;
import java.util.Scanner;
public class StudentOper {
private ArrayList<Student> stus = new ArrayList<Student>();
//菜单
public void menu() {
System.out.println("**************");
System.out.println("1.增加学生");
System.out.println("2.根据学号修改学生信息");
System.out.println("3.查看所有学生信息");
System.out.println("4.根据学号查看某一个学生信息");
System.out.println("5.根据性别查看同性别的所有学生");
System.out.println("6.根据学号删除某一个学生");
System.out.println("7.按照学号升序排序(默认)");
System.out.println("8.按照年龄降序排序");
System.out.println("**************");
System.out.println("请输入选项:");
}
//1.增加学生
public boolean addStudent(Student stu) {
if(stus!=null) {
stus.add(stu);
return true;
}
return false;
}
//2.根据学号修改学生信息
public boolean updateStudent(Student stu) {
if(stus!=null) {
//遍历查找要修改的对象
for(int i=0;i<stus.size();i++) {
Student s = stus.get(i);
if(s.getStuNo() == stu.getStuNo()) {
stus.set(i, stu);//重置
return true;
}
}
}
return false;
}
//3.查看所有学生信息
public void showStudent() {
for(Student stu : stus) {
System.out.println(stu);
}
}
//4.根据学号查看某一个学生信息
public Student queryStuById(int stuNo) {
for(Student stu : stus) {
if(stu.getStuNo() == stuNo) {
return stu;
}
}
return null;
}
//5.根据性别查看同性别的所有学生
public ArrayList<Student> queryStuBySex(String sex){
ArrayList<Student> stuSexArr = new ArrayList<Student>();
for(Student stu : stus) {
if(stu.getStuSex().equals(sex)) {
stuSexArr.add(stu);
}
}
return stuSexArr;
}
//6.根据学号删除某一个学生
public boolean deleteStuById(int stuNo) {
Student stu = this.queryStuById(stuNo);
return stus.remove(stu);
}
//7.按照学号升序排序(默认)
public void sortStuByTd() {
for(int i=0;i<stus.size()-1;i++ ) {
for(int j=0;j<stus.size()-i-1;j++) {
//比较
if(stus.get(j).stuNo>stus.get(j+1).stuNo) {
Student stu = stus.get(j);
stus.set(j, stus.get(j+1));
stus.set(j+1, stu);
}
}
}
}
//8.按照年龄降序排序
public void sortStuByAge() {
for(int i=0;i<stus.size()-1;i++ ) {
for(int j=0;j<stus.size()-i-1;j++) {
//比较
if(stus.get(j).stuAge<stus.get(j+1).stuAge) {
Student stu = stus.get(j);
stus.set(j, stus.get(j+1));
stus.set(j+1, stu);
}
}
}
}
}
/*
*/测试类
import java.util.ArrayList;
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
StudentOper stuop = new StudentOper();
Scanner input = new Scanner (System.in);
while(true) {
stuop.menu();
int number = input.nextInt();
Student stu = new Student();
if(number==1) {//1.增加学生
//添加属性
System.out.println("请输入学生信息(学号 姓名 年龄 性别):");
stu.stuNo = input.nextInt();
stu.stuName = input.next();
stu.stuAge = input.nextInt();
stu.stuSex = input.next();
boolean boo = stuop.addStudent(stu);
if(boo) {
System.out.println("添加成功!");
}
}
if(number==2) {//2.根据学号修改学生信息
System.out.println("请输入学生信息(学号 姓名 年龄 性别):");
stu.stuNo = input.nextInt();
stu.stuName = input.next();
stu.stuAge = input.nextInt();
stu.stuSex = input.next();
boolean boo = stuop.updateStudent(stu);
if(boo) {
System.out.println("修改成功!");
}else {
System.out.println("没有找到学号为"+stu.stuNo+"的学生");
}
}
if(number==3) {//3.查看所有学生信息
stuop.showStudent();
}
if(number==4) {//4.根据学号查看某一个学生信息
System.out.println("请输入学生学号 :");
stu.stuNo = input.nextInt();
System.out.println(stuop.queryStuById(stu.stuNo));
}
if(number==5) {//根据性别查看同性别的所有学生
System.out.println("请输入学生性别 :");
stu.stuSex = input.next();
System.out.println(stuop.queryStuBySex(stu.stuSex));
}
if(number==6) {//6.根据学号删除某一个学生
System.out.println("请输入要删除的学生学号 :");
stu.stuNo = input.nextInt();
boolean boo = stuop.deleteStuById(stu.stuNo);
if(boo) {
System.out.println("删除成功!");
}else {
System.out.println("没有找到学号为"+stu.stuNo+"的学生");
}
}
if(number==7) {//7.按照学号升序排序(默认)
stuop.sortStuByTd();
stuop.showStudent();
}
if(number==8) {//8.按照年龄降序排序
stuop.sortStuByAge();
stuop.showStudent();
}
}
}
}
欢迎点赞评论哦,谢谢大家!