发表于: 2017-04-15 00:08:03

4 1454


今天完成的事情:

使用数组存储自定义类型,遍历

ArrayList集合

数组对象的长度是不可改变的

ArrayList是一个容器,里面存储的是可变数量的对象;



ArrayList类的构造方法和成员方法

ArrayList<E>集合:大小可变数组的实现

<E>是一种特殊的数据类型 泛型,在出现E的地方我们使用引用数据类型替换即可


构造方法:

ArrayList()


成员添加方法

1.添加元素

public boolean add()

public void add(int index,E element):在指定的索引处添加一个元素

2.获取元素

public E get(int index):返回指定索引处的元素

3.集合长度

public int size()返回集合中的元素个数

4.删除元素

public boolean remove(Object o):删除指定的元素,返回删除是否成功

public E remove(intindex)删除指定索引处的元素,返回被删除的元素

5.修改元素

public E set(int index,E element)修改指定索引处的元素,返回被修改的元素



完成第一个小项目:学生管理系统



定义的学生类代码:

package guanLiXiTong;


public class Student {

//学生管理系统标准学生类

//学号,姓名,年龄,居住地

private String id;

private String name;

private String age;

private String address;

//无参构造方法

public Student(){

}

//带参构造方法

public Student(String id,String name,String age,String address){

this.id = id;

this.name = name;

this.age = age;

this.address = address;

}

//set,get方法

public String getId(){

return id;

}

public void setId(String id){

this.id = id;

}

public String getName(){

return name;

}

public void setName(String name){

this.name = name;

}

public String getAge(){

return age;

}


public void setAge(String age){

this.age = age;

}

public String getAddress(){

return address;

}

public void setAddress(String address){

this.address = address;

}



主函数代码

package guanLiXiTong;


//导包

import java.util.ArrayList;

import java.util.Scanner;


public class demo {


public static void main(String[] args) {

// 分析:学生管理系统实现

/*

* 1.创建学生类,定义成员变量,生成set,get构造方法 2.定义集合,准备存储学生信息 3.提示用户选择对应的操作

* 4.根据用户选择的操作执行对应的操作 5.将用户的操作放入到循环里面,进行对应的操作的时候,传入学生集合

*/

// 学生管理系统主类


// 创建集合对象,用于存储学生数据

ArrayList<Student> list = new ArrayList<Student>();


// 为了让程序能够回到这里来,使用while 循环

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);

// 接收输入对象赋给字符串变量

String choiceString = sc.nextLine();

// 用switch语句实现选择

switch (choiceString) {

case "1":

// 调用查看学生方法

chaKan(list);

break;

case "2":

// 添加学生

tianJia(list);

break;

case "3":

// 删除学生

shanChu(list);

break;

case "4":

// 修改学生

xiuGai(list);

break;

case "5":

System.out.println("退出系统");

System.exit(0);// 退出JVM

break;

default:

System.out.println("你选择的有误,请重新操作");


}

}

}


// 查看学生方法

// 参数是 :ArrayList<Student> list

public static void chaKan(ArrayList<Student> list) {

// 判断是否有学生

if (list.size() == 0) {

System.out.println("系统中暂时没有学生,请添加学生");

return;// 结束当前方法

}

// 遍历学生

System.out.println("编号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "地址");

for (int i = 0; i < list.size(); i++) {

Student stu = list.get(i);

System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());

}


}

// 添加学生方法

// 参数是 :ArrayList<Student> list


public static void tianJia(ArrayList<Student> list) {

// 提示输入学生编号

Scanner sc = new Scanner(System.in);

System.out.println("请输入添加的学生编号:");

String id = sc.nextLine();

// 判断学生编号是否重复 需要先遍历出来所有编号

for (int i = 0; i < list.size(); i++) {

// 接收遍历出来的编号

Student stu = list.get(i);

if (stu.getId().equals(id)) {

System.out.println("你添加的学生编号已经存在,请重新添加");

return;// 结束当前方法

}

}

// 继续提示用户输入

System.out.println("请输入学生名字:");

String name = sc.nextLine();

System.out.println("请输入学生年龄:");

String age = sc.nextLine();

System.out.println("请输入学生地址:");

String address = sc.nextLine();

// 创建学生

Student stu = new Student(id, name, age, address);

// 添加到集合

list.add(stu);

System.out.println("恭喜你,添加成功");


}// 创建删除方法

// ArrayList<Student> list


public static void shanChu(ArrayList<Student> list) {

// 提示用户输入删除的编号

Scanner sc = new Scanner(System.in);

System.out.println("请输入要删除的编号");

// 接收

String id = sc.nextLine();

// 遍历集合,查看要删除的学生标号是否存在

// 定义变量记录有没有这个id

int index = -1;

for (int i = 0; i < list.size(); i++) {

// 遍历接收

Student stu = list.get(i);

// 判断是否有

if (stu.getId().equals(id)) {

// 说明有这个编号

index = i;

break;

}


} // 没有这个编号

if (index == -1) {

System.out.println("你要删除的学生编号不存在,请重新填写");

return;// 结束方法

}

// 删除 操作

list.remove(index);

System.out.println("删除成功!");


}


// 修改学生

// 参数 ArrayList<Student> list

public static void xiuGai(ArrayList<Student> list) {

Scanner sc = new Scanner(System.in);

// 提示用户输入要修改的学生编号

System.out.println("请输入要修改的学生编号:");

String id = sc.nextLine();

// 遍历集合,查看是否有要修改的学生编号

// 记录学生的编号

int index = -1;

for (int i = 0; i < list.size(); i++) {

Student stu = list.get(i);

// 判断编号是否存在

if (stu.getId().equals(id)) {

// 说明有这个编号

index = i;

break;

}


}

// 没有这个编号

if (index == -1) {

System.out.println("你要修改的学生编号不存在,请重新输入:");

return;

}

// 修改操作

Student stu = list.get(index);

System.out.println("请输入新的姓名");

String name = sc.nextLine();

System.out.println("请输入新的年龄");

String age = sc.nextLine();

System.out.println("请输入新的地址");

String address = sc.nextLine();

// 把新输入的值用set赋值给stu学生对象

stu.setName(name);

stu.setAge(age);

stu.setAddress(address);

System.out.println("修改成功");


}


}



明天计划的事情:

字符流,字符缓冲流 


问题:

学生管理系统代码只敲了一遍,找时间多敲几遍


收获:

能够使用ArrayList集合的构造方法创建ArrayList集合对象

使用ArrayList集合存储数据

能够使用ArrayList集合中常用的方法

能够使用ArrayList集合存储字符串并遍历

能够使用ArrayList集合存储自定义对象并遍历

能够将数组中的元素添加到集合中,并按要求打印到控制台上

能够理解学生管理系统功能



返回列表 返回列表
评论

    分享到