# java在集合,ArrayList集合完成,咋写

public class Test {
public static void main(String[] args) {

``````    ## 定义一个ArrayList集合，保存学生的对象。
## 快速实例化5个学生对象，依次存入集合中。
##  将集合中的对象进行排序，三门课程的总分最高分在前面，总分最低分在后面。
##  请实现，并输出集合数据验证。
##  算出语文的平均分输出。
## 语文分数低于平均分的学生信息输出。(对象里面的输出方法)
## 数学最高分的学生信息输出。

ArrayList<Student> list=new ArrayList<Students>();
Student s1=new Students("张三",81,72,99);
Student s2=new Students("李四",82,72,55);
Student s3=new Students("王五",83,73,46);
Student s4=new Students("赵六",84,77,86);
Student s5=new Students("田七",85,79,77);
Iterator<Students> iterator=list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next().PrintStu());
}
Collections.sort(list, new Comparator<Students>() {
@Override
public int compare(Students o1, Students o2) {
int num1=o1.getYwscore()+o1.getYyscore()+o1.getYyscore();
int num2=o2.getYwscore()+o2.getYyscore()+o2.getYyscore();
if (num1>num2){
return -1;
}if (num1==num2){
return 0;
}
return 1;
}
});
System.out.println(list);
}
``````

public class Student {

``````String name;
int ywscore;
int yyscore;
int sxscore;

public Students(){}
public Students(String name, int ywscore, int yyscore, int sxscore) {
this.name = name;
this.ywscore = ywscore;
this.yyscore = yyscore;
this.sxscore = sxscore;
}
public boolean PrintStu(){
System.out.println("姓名："+name+":语文成绩："+ywscore+",英语成绩"+yyscore+",数学成绩："+sxscore);
return false;
}
public void setName(String name) {
this.name = name;
}

public void setYwscore(int ywscore) {
this.ywscore = ywscore;
}

public void setYyscore(int yyscore) {
this.yyscore = yyscore;
}

public void setSxscore(int sxscore) {
this.sxscore = sxscore;
}

public String getName() {
return name;
}

public int getYwscore() {
return ywscore;
}

public int getYyscore() {
return yyscore;
}

public int getSxscore() {
return sxscore;
}
``````

}

• 写回答

#### 2条回答默认 最新

• 未聞花名丶 2022-04-15 19:54
关注
``````
public class Student {
String name;
int ywscore;
int yyscore;
int sxscore;

public Student() {
}

public Student(String name, int ywscore, int yyscore, int sxscore) {
this.name = name;
this.ywscore = ywscore;
this.yyscore = yyscore;
this.sxscore = sxscore;
}

public boolean PrintStu() {
System.out.println("姓名：" + name + ":语文成绩：" + ywscore + ",英语成绩" + yyscore + ",数学成绩：" + sxscore);
return false;
}

public void setName(String name) {
this.name = name;
}

public void setYwscore(int ywscore) {
this.ywscore = ywscore;
}

public void setYyscore(int yyscore) {
this.yyscore = yyscore;
}

public void setSxscore(int sxscore) {
this.sxscore = sxscore;
}

public String getName() {
return name;
}

public int getYwscore() {
return ywscore;
}

public int getYyscore() {
return yyscore;
}

public int getSxscore() {
return sxscore;
}

@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", ywscore=" + ywscore +
", yyscore=" + yyscore +
", sxscore=" + sxscore +
'}';
}

public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>();
Student s1 = new Student("张三", 81, 72, 99);
Student s2 = new Student("李四", 82, 72, 55);
Student s3 = new Student("王五", 83, 73, 46);
Student s4 = new Student("赵六", 84, 77, 86);
Student s5 = new Student("田七", 85, 79, 77);

// 将集合中的对象进行排序，三门课程的总分最高分在前面，总分最低分在后面。
orderBySum(list);

// 请实现，并输出集合数据验证。
System.out.println("成绩从高到低：" + list);

// 算出语文的平均分输出。
double sum = 0;
for (Student student : list) {
sum += student.getYwscore();
}
double avg = sum / list.size();
System.out.println("语文平均分：" + avg);

// 语文分数低于平均分的学生信息输出。(对象里面的输出方法)
for (Student student : list) {
if (student.getYwscore() < avg) {
System.out.println("语文分数低于平均分的学生信息：" + student);
}
}

// 数学最高分的学生信息输出。
int max = 0;
int index = 0;
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getSxscore() > max) {
max = student.getSxscore();
index = i;
}
}
System.out.println("数学最高分的学生信息：" + list.get(index));
}

private static void orderBySum(ArrayList<Student> list) {
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
int num1 = o1.getSxscore() + o1.getYwscore() + o1.getYyscore();
int num2 = o2.getSxscore() + o2.getYwscore() + o2.getYyscore();
return num2 - num1;
}
});
}
}
``````
本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

#### 问题事件

• 已结题 （查看结题原因） 4月15日
• 已采纳回答 4月15日
• 修改了问题 4月15日
• 创建了问题 4月15日

#### 悬赏问题

• ¥100 连续两帧图像高速减法
• ¥15 组策略中的计算机配置策略无法下发
• ¥15 如何绘制动力学系统的相图
• ¥15 对接wps接口实现获取元数据
• ¥20 给自己本科IT专业毕业的妹m找个实习工作
• ¥15 用友U8：向一个无法连接的网络尝试了一个套接字操作，如何解决？
• ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
• ¥50 mac mini外接显示器 画质字体模糊
• ¥15 TLS1.2协议通信解密
• ¥40 图书信息管理系统程序编写