集合
ArrayList<>
package com.shifan.arraylist;
import com.shifan.domain.Student;
public class Demo01ArrayList {
public static void main(String[] args) {
Student[] arr = new Student[3];
Student stu1 = new Student("张三", "33");
Student stu2 = new Student("李四", "43");
Student stu3 = new Student("王五", "23");
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
for (Student stu : arr) {
System.out.println(stu);
stu.show();
}
}
}
ArrayList的构造方法、添加方法
package com.shifan.arraylist;
import java.util.ArrayList;
public class Demo02ArrayList {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("abc");
list1.add(123);
list1.add(true);
System.out.println(list1);
ArrayList<String> list2 = new ArrayList<>();
list2.add("shif");
list2.add("fs");
list2.add("sg");
list2.add(1,"an");
System.out.println(list2);
}
}
ArrayList 的常用成员方法
package com.shifan.arraylist;
import java.util.ArrayList;
public class Demo03ArrayListMethod {
public static void main(String[] args) {
ArrayList<Object> objects = new ArrayList<>();
objects.add(1);
objects.add("aaa");
objects.add("a");
objects.add("oo");
objects.add("ccc");
System.out.println(objects);
if (objects.remove("a") == true) {
System.out.println("成功删除元素a");
}
System.out.println(objects);
Object s = objects.set(3, "shif");
System.out.println(s);
System.out.println(objects);
System.out.println(objects.get(2));
System.out.println(objects.size());
}
}
案例1:存储字符串并遍历
package com.shifan.arraylist;
import java.util.ArrayList;
public class Case1 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("abc");
strings.add("def");
strings.add("ggg");
for (String s : strings) {
System.out.println(s);
}
}
}
案例2:存储学生对象并遍历
package com.shifan.arraylist;
import java.util.ArrayList;
import java.util.Scanner;
public class Case2 {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入学号:");
String sNum = sc.nextLine();
System.out.println("请输入姓名:");
String sName = sc.nextLine();
System.out.println("请输入年龄:");
int sAge = sc.nextInt();
System.out.println("请输入生日:");
String sBirthday = sc.next();
Student student = new Student(sNum,sName,sAge,sBirthday);
students.add(student);
}
for (Student stu : students) {
stu.show();
}
}
}
学生类(以下同)
package com.shifan.arraylist;
public class Student {
private String num;
private String name;
private int age;
private String birthday;
public void show(){
System.out.println(num+"\t\t"+name+"\t"+age+"\t\t"+birthday);
}
public Student() {
}
public Student(String num, String name, int age, String birthday) {
this.num = num;
this.name = name;
this.age = age;
this.birthday = birthday;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
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 getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
案例3:集合删除元素
package com.shifan.arraylist;
import java.util.ArrayList;
public class Case3 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("张三");
strings.add("test");
strings.add("李四");
strings.add("王五");
strings.add("test");
strings.add("test");
System.out.println("删除test之前集合元素有:");
for (String string : strings) {
System.out.print(string+"\t");
}
for (int i = 0; i < strings.size(); i++) {
if ("test".equals(strings.get(i))){
strings.remove(i);
i--;
}
}
System.out.println("删除test之后集合元素有:");
for (String string : strings) {
System.out.print(string+"\t");
}
}
}
案例4:集合元素筛选
package com.shifan.arraylist;
import java.util.ArrayList;
public class Case4 {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("111","张三",30,"1.10"));
students.add(new Student("45","李四",10,"8.4"));
students.add(new Student("7","王五",20,"7.7"));
students.add(new Student("3","赵六",3,"5.8"));
System.out.println("原集合学生信息:");
for (Student ss : students) {
ss.show();
}
ArrayList<Student> stu1 = choseStudent(students);
System.out.println("年龄小于18的学生信息:");
for (Student s : stu1) {
s.show();
}
}
private static ArrayList<Student> choseStudent(ArrayList<Student> list) {
ArrayList<Student> stu = new ArrayList<>();
for (Student l : list) {
if (l.getAge()<18){
stu.add(l);
}
}
return stu;
}
}
例题:学生信息管理系统
package com.shifan.arraylist;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
private static final int AGE = 100;
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
while (true){
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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i == 1) {
addStudent(students);
} else if(i == 2){
deleteStudent(students);
}else if(i == 3){
modifyStudent(students);
}else if(i == 4){
showStudent(students);
} else if (i == 5) {
System.out.println("感谢您的使用");
break;
} else {
System.out.println("输入错误");
}
}
}
private static void modifyStudent(ArrayList<Student> students) {
System.out.println("请输入学号:");
Scanner sc = new Scanner(System.in);
String sNum = sc.nextLine();
Student stu = new Student();
boolean a = false;
for (Student stu1 : students) {
if (sNum.equals(stu1.getNum())){
stu = stu1;
a = true;
}
}
if (a){
String sNum1;
while (true) {
System.out.println("开始修改,请输入新的学号:");
sNum1 = sc.nextLine();
int i;
for (i = 0; i < students.size(); i++) {
Student stu1 = students.get(i);
if (sNum1.equals(stu1.getNum())&&!(stu1.getNum().equals(sNum))) {
System.out.println("学号已存在");
break;
}
}
if (i == students.size()){
break;
}
}
System.out.println("请输入新的姓名:");
String sName = sc.nextLine();
System.out.println("请输入新的年龄:");
int sAge = sc.nextInt();
if (sAge<0||sAge>AGE){
System.out.println("输入错误");
return;
}
System.out.println("请输入新的生日:");
String sBirthday = sc.next();
stu.setNum(sNum1);
stu.setName(sName);
stu.setAge(sAge);
stu.setBirthday(sBirthday);
System.out.println("修改成功");
}else {
System.out.println("学号不存在");
}
}
private static void deleteStudent(ArrayList<Student> students) {
System.out.println("请输入学号");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int i;
for (i=0; i < students.size(); i++) {
Student stu = students.get(i);
if (s.equals(stu.getNum())){
students.remove(stu);
System.out.println("成功删除");
}
}
if (i == students.size()){
System.out.println("学号不存在");
}
}
private static void showStudent(ArrayList<Student> students) {
if (students.size() == 0) {
System.out.println("无学生信息,请添加后重试");
} else {
System.out.println("学号 姓名 年龄 生日");
for (Student stu : students) {
stu.show();
}
}
}
private static void addStudent(ArrayList<Student> students){
Scanner sc1 = new Scanner(System.in);
String sNum;
while (true) {
System.out.println("请输入学号:");
sNum = sc1.nextLine();
int i;
for (i = 0; i < students.size(); i++) {
Student stu1 = students.get(i);
if (sNum.equals(stu1.getNum())) {
System.out.println("学号已存在");
break;
}
}
if(i == students.size()){
break;
}
}
System.out.println("请输入姓名:");
String sName = sc1.nextLine();
System.out.println("请输入年龄:");
int sAge = sc1.nextInt();
if (sAge<0||sAge>AGE){
System.out.println("输入错误");
return;
}
System.out.println("请输入生日:");
String sBirthday = sc1.next();
Student student = new Student(sNum,sName,sAge,sBirthday);
students.add(student);
System.out.println("添加成功");
}
}