Java数据结构问题
定义一个学生类:属性有学号、姓名、专业、数学成绩、英语成绩,Java成绩。使用ArrayList存放多名学生的进行,对部分学生信息进行修改,并对所有学生的信息进行遍历。(至少选择两种遍历方法,for语句遍历或者Iterator遍历)
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
class Student {
private String sID;
private String sName;
private String sDepartment;
private double English;
private double Math;
private double Java;
public Student(String sID, String sName, String sDepartment, double English, double Math, double java) {
this.sID= sID;
this.sName = sName;
this.sDepartment = sDepartment;
this.Math = Math;
this.English = English;
this.Java = Java;
}
public String getID() {
return sID;
}
public void setID(String sID) {
this.sID = sID;
}
public String getSname() {
return sName;
}
public void setSname(String sName) {
this.sName = sName;
}
public String getDepartment() {
return sDepartment;
}
public void setDepartment(String sDepartment) {
this.sDepartment = sDepartment;
}
public double getMath() {
return Math;
}
public void setMath(double Math) {
this.Math = Math;
}
public double getEnglish() {
return English;
}
public void setEnglish(double English) {
this.English = English;
}
public double getJava() {
return Java;
}
public void setJava(double java) {
this.Java = Java;
}
@Override
public String toString() {
return "Student [sID=" + sID + ", sName=" + sName + ", sDepartment=" + sDepartment + ", Math=" + Math
+ ", English=" + English + ", Java=" + Java + "]";
}
}
求解答,谢谢
两种循环【for-each, Iterator】,参考如下:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author huazie
* @version 2.0.0
* @since 2.0.0
*/
public class Test {
public static void main(String[] args) {
Student stu1 = new Student("1000", "huazie", "ABC", 99, 100, 100);
Student stu2 = new Student("1001", "lgh", "ABC", 98, 100, 100);
Student stu3 = new Student("1002", "Tom", "ABC", 99, 100, 100);
List<Student> stuList = new ArrayList<>();
stuList.add(stu1);
stuList.add(stu2);
stuList.add(stu3);
// Iterator
Iterator<Student> stuIt = stuList.iterator();
while(stuIt.hasNext()) {
Student student = stuIt.next();
System.out.println(student);
}
stuList.get(1).setMath(90.5);
stuList.get(2).setJava(95.5);
System.out.println();
// fo-each
for (Student student : stuList) {
System.out.println(student);
}
}
}
该回答引用ChatGPT
下面是使用ArrayList存储学生对象,并对学生信息进行修改和遍历的示例代码:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建学生列表
List<Student> students = new ArrayList<Student>();
students.add(new Student("1001", "张三", "计算机科学与技术", 90, 85, 88));
students.add(new Student("1002", "李四", "软件工程", 88, 92, 95));
students.add(new Student("1003", "王五", "物联网工程", 80, 87, 92));
// 输出所有学生信息
System.out.println("所有学生信息:");
for (Student s : students) {
System.out.println(s);
}
// 修改部分学生信息
students.get(1).setJava(97);
students.get(2).setEnglish(90);
// 输出修改后的学生信息
System.out.println("修改后的学生信息:");
Iterator<Student> iter = students.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
}
}
使用了for,foreach,Iterator三种方式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
/**
* 集合中操作学生数据
*/
public class ListOptionalStuDataCase {
public static void main(String[] args) {
int studentCount = 20;
List<Student> studentList = new ArrayList<>(studentCount);
// for循环创建学生
for (int index = 1; index <= studentCount; index++) {
Student student = new Student(
// 编码
String.valueOf(index),
// 学生姓名
"stu" + index,
// 班级
"六年2班",
// 数学成绩
getRandomFraction(),
// 英语成绩
getRandomFraction(),
// Java成绩
getRandomFraction()
);
studentList.add(student);
}
// foreach遍历学生信息
for (Student student : studentList) {
if (student.getJavaScore() < 50D) {
// 如果Java分数小于50分, 修改分数为100
student.setJavaScore(100D);
}
}
// 使用迭代器遍历学生信息
Iterator<Student> iterator = studentList.iterator();
while (iterator.hasNext()) {
// 打印每一个学生信息
System.out.println(iterator.next());
}
}
/**
* 获取随机分数
*
* @return 随机分数
*/
private static double getRandomFraction() {
Random random = new Random();
return random.nextInt(100) + 1;
}
}