1.2.1.设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示:
姓名 成绩
刘德华 85
张学友 100
刘杰 65
章子怡 58
周迅 76
将以上5个对象放入LinkedList中,
完成如下操作和统计:
1、输出LinkedList中的对象个数。
2、删除姓名为“刘杰”的学生信息,并输出LinkedList中现有学生信息。
3、将姓名为“刘德华”的学生成绩改为95。
4、输出成绩不及格的学生姓名
// 实体类
public class Student {
private String name;
private double score;
public Student() {
}
public Student(String name,
double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "Student{" + "name='" + name + '\'' + ", score=" + score + '}';
}
}
// 核心代码
/**
* 打印成绩不及格的学生姓名
* @param students
*/
private void printFailName(List<Student> students) {
for (Student student : students) {
if (student.getScore() < 60) System.out.println(student.getName());
}
}
/**
* 根据名字修改成绩
* @param name
* @param score
* @param students
*/
private void modifyScoreByName(String name,
double score,
List<Student> students) {
if (name == null) throw new RuntimeException("名字不能为空");
for (Student student : students) {
if (name.equals(student.getName())) student.setScore(score);
}
}
/**
* 根据姓名移除学生信息
*
* @param name
* @param students
* @return
*/
private void removeByName(String name,
List<Student> students) {
if (name == null) throw new RuntimeException("名字不能为空");
for (Student student : students) {
if (name.equals(student.getName())) {
students.remove(student);
break;
}
}
}
/**
* 初始化数据
*
* @return
*/
public List<Student> init() {
List<Student> students = new LinkedList<>();
students.add(new Student("刘德华",
85));
students.add(new Student("张学友",
100));
students.add(new Student("刘杰",
65));
students.add(new Student("章子怡",
58));
students.add(new Student("周迅",
76));
return students;
}
// 测试
@Test
public void test1() {
List<Student> students = init();// 初始化数据
System.out.println(students);
removeByName("刘杰",
students);// 移除信息;
System.out.println(students);
modifyScoreByName("刘德华",
95,
students);// 修改成绩
System.out.println(students);
printFailName(students);
System.out.println(students);
}
最终运行结果截图:

主要是编写函数,注意算法思想,可以在网页上搜一下,然后自己理解
在类里定义操作对象的函数,编写函数Display输出对象的各个内容,Delete 函数,第二个可以在Delete函数调用后再调用Display函数输出学生信息,第三个需要查找学生,编写一个Find函数,查找,然后修改对象成绩,第四个也可定义一个筛选函数,访问对象的成绩_grades 判断条件为Stu._grades<60,输出满足这个条件的所有对象姓名即可
上述图片说明:
补充,上述代码有个小问题就是如果有重名的只能移除第一个,所以做如下修改
/**
* 根据姓名移除学生信息
*
* @param name
* @param students
* @return
*/
private void removeByName(String name,
List students) {
if (name == null) throw new RuntimeException("名字不能为空");
leb:for (Student student : students) {
if (name.equals(student.getName())) {
students.remove(student);
break leb;
}
}
}