1.集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
2.集合和数组的区别
3.如果存储的数据,长度经常发生改变,推荐使用集合。
ArrayList<所要限制的类型> 对象名 = new ArrayList<>( );
public class text2 {
public static void main(String[] args) {
// 创建一个对象list1,不限制存入的数据类型
ArrayList list1 = new ArrayList<>();
list1.add(111);
list1.add("hello");
System.out.println(list1);
// 创建一个对象list2,限制只能存入Integer类型数据
ArrayList list2 = new ArrayList();
list2.add(777);
list2.add(888);
System.out.println(list2);
}
}
//结果
//[111, hello]
//[777, 888]
对象名 . add (需要添加的数据);
#将指定的元素添加到列表的尾部
对象名 . add( index , 需要添加的数据)
#将指定的元素插入列表的指定位置
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add(777);
list1.add(888);
list1.add(0,111);
System.out.println(list1);
}
}
//结果
//[111, 777, 888]
boolean 变量名 = 对象名 . remove(要删除的数据);
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("777");
list1.add("888");
list1.add(0,"111");
boolean b = list1.remove("777");
boolean b1 = list1.remove("000");
System.out.println(b);
System.out.println(b1);
System.out.println(list1);
}
}
//结果
//true
//false
//[111, 888]
被删除数据的类型 变量名 = 对象名 . remove ( 被删除的数据的索引);
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("777");
list1.add("888");
list1.add(0,"111");
String s = list1.remove(1);
System.out.println(s);
System.out.println(list1);
}
}
//结果
//777
//[111, 888]
被修改的数据的类型 变量名 = 对象名 . set(index,修改后的元素);
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("777");
list1.add("888");
list1.add(0,"111");
String s = list1.set(0, "666");
System.out.println("被修改的元素为"+s);
System.out.println(list1);
}
}
//结果
//被修改的元素为111
//[666, 777, 888]
索引处元素的类型 变量名 = 对象名 . get ( index ) ;
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("777");
list1.add("888");
list1.add(0,"111");
String s = list1.get(0);
System.out.println(s);
}
}
//结果
//111
int 变量名 = 对象名 . size () ;
public class text2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("777");
list1.add("888");
list1.add(0,"111");
int s = list1.size();
System.out.println(s);
}
}
//结果
//3
package domain;
public class Student {
private int sid;
private String name;
private int age;
private String birthday;
public Student() {
}
public Student(int sid, String name, int age, String birthday) {
this.sid = sid;
this.name = name;
this.age = age;
this.birthday = birthday;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getBirthday() {
return birthday;
}
}
package xixi;
import domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class Text1 {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
lo:
while (true){
int chices = Choice();
switch (chices){
case 1:
addStudent(list);
break;
case 2:
deleteStudent(list);
break;
case 3:
updateStudent(list);
break;
case 4:
queryStudents(list);
break;
case 5:
System.out.println("感谢您的使用");
break lo;
default:
System.out.println("您的输入有误");
break;
}
}
}
//选择功能方法
private static int Choice() {
Scanner input = new Scanner(System.in);
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("请输入你的选择:");
return input.nextInt();
}
// 输入学生信息方法
public static void addStudent(ArrayList list) {
Scanner input = new Scanner(System.in);
int ans = -1;
do {
System.out.println("请输入学生学号:");
int sid = input.nextInt();
ans = getIndex(list,sid);
if (ans != -1) {
System.out.println("你输入的学号已经被占用,请重新输入!");
} else {
System.out.println("请输入学生姓名:");
String name = input.next();
System.out.println("请输入学生年龄:");
int age = input.nextInt();
System.out.println("请输入学生生日:");
String birthday = input.next();
Student stu = new Student(sid,name,age,birthday);
list.add(stu);
System.out.println("添加成功!");
}
}while (ans!=-1);
}
// 获得学生学号下标方法
public static int getIndex(ArrayListlist,int sid){
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getSid()==sid){
return i;
}
}
return -1;
}
// 删除学生信息方法
public static void deleteStudent(ArrayList list) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
int sid= input.nextInt();
int index = getIndex(list,sid);
if (index==-1) {
System.out.println("该信息不存在,请重新输入!");
}else {
list.remove(index);
System.out.println("删除学生成功");
}
}
// 展示所有学生信息方法
public static void queryStudents(ArrayList list) {
if (list.size()==0) {
System.out.println("无信息,请先添加信息再查询!");
return;
}
System.out.println("学号\t\t姓名\t\t年龄\t\t生日");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getSid()+"\t\t"+ list.get(i).getName()+"\t\t"+ list.get(i).getAge()+"岁\t"+ list.get(i).getBirthday());
}
}
// 修改学生信息方法
public static void updateStudent(ArrayList list) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号:");
int sid = input.nextInt();
int index = getIndex(list,sid);
if (index == -1) {
System.out.println("该信息不存在,请重新输入!");
}else {
Student stu = list.get(index);
System.out.println("请输入学生新姓名:");
String name = input.next();
stu.setName(name);
System.out.println("请输入学生新年龄:");
int age = input.nextInt();
stu.setAge(age);
System.out.println("请输入学生新生日:");
String birthday = input.next();
stu.setBirthday(birthday);
System.out.println("修改学生成功");
}
}
}