PTA 集合排序(Java)

1.多数组排序 (15 分)

3个整数数组进行整体排序,根据输入的三个数组的元素,输出排序后的结果(从大到小)

输入格式:
第1个数组的长度

第1个数组的各个元素

第2个数组的长度

第2个数组的各个元素

第3个数组的长度

第3个数组的各个元素

输出格式:
所有数组的整体排序

输入样例:
在这里给出一组输入。例如:

3
79 80 61
3
88 66 77
2
23 90

输出样例:
在这里给出相应的输出。例如:

90 88 80 79 77 66 61 23

import java.util.Scanner;
import java.util.Arrays;

public class Main{
    
    
	public static void main(String args[]){
    
    
		Scanner sc = new Scanner(System.in);
        
		int a=sc.nextInt();
		int str1[]=new int [a];
		for(int i=0 ; i<a; i++){
    
    
			str1[i]=sc.nextInt();
		}
        
		int b= sc.nextInt();
		int str2[]=new int [b];
		for(int i=0 ; i<b; i++){
    
    
			str2[i]=sc.nextInt();
		}
        
		int c=sc.nextInt();
		int str3[]=new int [c];
		for(int i=0 ; i<c; i++){
    
    
			str3[i]=sc.nextInt();
		}
        
		int giao[]=new int [a+b+c];
		System.arraycopy(str1,0,giao,0,a);
		System.arraycopy(str2,0,giao,a,b);
		System.arraycopy(str3,0,giao,a+b,c);
        
		Arrays.sort(giao);
        
        System.out.print(giao[giao.length-1]);
		for(int i = giao.length-2; i>=0; i--){
    
    
			System.out.print(" "+giao[i]);
		}
	}
}

2.jmu-Java-04面向对象进阶–02-接口-Comparator (15 分)

Arrays.sort可以对所有实现Comparable的对象进行排序。但如果有多种排序需求,如有时候需对name进行降序排序,有时候只需要对年龄进行排序。使用Comparable无法满足这样的需求。可以编写不同的Comparator来满足多样的排序需求。

#1.编写PersonSortable2类 属性:private name(String)、private age(int)
有参构造函数:参数为name,age
toString方法:返回格式name-age

#2 编写Comparator类

编写NameComparator类,实现对name进行升序排序
编写AgeComparator类,对age进行升序排序

#3.main方法中

输入n
输入n行name age,并创建n个对象放入数组
对数组按照name进行升序排序后输出。
在3的基础上对数组按照age进行升序排序后输出。
最后最后两行使用如下代码输出NameComparator与AgeComparator所实现的所有接口。
System.out.println(Arrays.toString(NameComparator.class.getInterfaces()));
System.out.println(Arrays.toString(AgeComparator.class.getInterfaces()));

输入样例:
5
zhang 15
zhang 12
wang 14
Wang 17
li 17

输出样例:
NameComparator:sort
Wang-17
li-17
wang-14
zhang-15
zhang-12
AgeComparator:sort
zhang-12
wang-14
zhang-15
Wang-17
li-17
//最后两行是标识信息


import java.util.*;

class PersonSortable2{
    
    
    private String name;
    private int age;

    public PersonSortable2(String name, int age) {
    
    
        this.name = name;
        this.age = age;
    }

    public String getName() {
    
    
        return name;
    }

    public int getAge() {
    
    
        return age;
    }

    @Override
    public String toString() {
    
    
        return name + "-" + age;
    }
}

class NameComparator implements Comparator{
    
    
    @Override
    public int compare(Object s1, Object s2) {
    
    
        return ((PersonSortable2)s1).getName().compareTo(((PersonSortable2)s2).getName());
    }
}

class AgeComparator implements Comparator{
    
    

    @Override
    public int compare(Object s1, Object s2) {
    
    
        return ((PersonSortable2)s1).getAge() - ((PersonSortable2)s2).getAge();
    }
}

public class Main{
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Object [] o = new Object[n];
        for( int i = 0; i < n; i ++ ){
    
    
            o[i] = new PersonSortable2(sc.next(), sc.nextInt());
        }

        Arrays.sort(o, new NameComparator());
        System.out.println("NameComparator:sort");
        for(Object o1:o){
    
    
            System.out.println(o1);
        }

        Arrays.sort(o, new AgeComparator());
        System.out.println("AgeComparator:sort");
        for(Object o1:o){
    
    
            System.out.println(o1);
        }

        System.out.println(Arrays.toString(NameComparator.class.getInterfaces()));
        System.out.println(Arrays.toString(AgeComparator.class.getInterfaces()));

        sc.close();
    }
}

3.职工排序题 (20 分)

1. 为某保险公司设计一个职工管理系统,其中职工类的属性有:职工编号,姓名,性别,团体险业绩,个体险业绩;方法有: 每个属性对应的set,get方法; 不带参数的构造方法; 带参数的构造方法,完成对职工属性的初始化; 该类实现接口Comparable,完成对职工总业绩的比较。

2. 设计一个类,实现Comparator接口,完成对团体险业绩的比较;

3. 在Main类中,创建一个职工的线性表,分别完成对职工线性表按照总业绩升序排序,按照团体险业绩升序排序。 注意:不要设计键盘输入职工信息,可根据样例中提供的数据直接创建职工对象;

输入格式:
输出格式:
各项之间用逗号“,”分隔

输入样例:
在这里给出一组输入。例如:

输出样例:
在这里给出相应的输出。例如:

编号,团险,个险,姓名,性别
1,500,400,职工1,female
3,600,300,职工3,male
2,400,600,职工2,female
4,800,200,职工4,female
5,500,700,职工5,male
编号,团险,个险,姓名,性别
2,400,600,职工2,female
1,500,400,职工1,female
5,500,700,职工5,male
3,600,300,职工3,male
4,800,200,职工4,female

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) throws InterruptedException {
    
    
        Scanner sc = new Scanner(System.in);
        List<Staff> ss=new ArrayList<Staff>();
        ss.add(new Staff(1,500,400,"职工1","female"));
        ss.add(new Staff(2,400,600,"职工2","female"));
        ss.add(new Staff(3,600,300,"职工3","male"));
        ss.add(new Staff(4,800,200,"职工4","female"));
        ss.add(new Staff(5,500,700,"职工5","male"));

        Collections.sort(ss);
        System.out.println("编号,团险,个险,姓名,性别");
        for (Staff s:ss){
    
    
            System.out.println(s.toString());
        }
        ss.sort(new newComparetor());
        System.out.println("编号,团险,个险,姓名,性别");
        for (Staff s:ss){
    
    
            System.out.println(s.toString());
        }


    }
}

class Staff implements Comparable<Staff>{
    
    
    private int number;
    private int tscore;
    private int pscore;
    private String name ;
    private String sex;


    public Staff(int number, int tscore, int pscore, String name, String sex) {
    
    
        this.number = number;
        this.tscore = tscore;
        this.pscore = pscore;
        this.name = name;
        this.sex = sex;
    }

    public int getNumber() {
    
    
        return number;
    }

    public void setNumber(int number) {
    
    
        this.number = number;
    }

    public String getName() {
    
    
        return name;
    }

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

    public String getSex() {
    
    
        return sex;
    }

    public void setSex(String sex) {
    
    
        this.sex = sex;
    }

    public int getTscore() {
    
    
        return tscore;
    }

    public void setTscore(int tscore) {
    
    
        this.tscore = tscore;
    }

    public int getPscore() {
    
    
        return pscore;
    }

    public void setPscore(int pscore) {
    
    
        this.pscore = pscore;
    }

    @Override
    public int compareTo(Staff s) {
    
    
        int ret=this.pscore+this.tscore-s.getPscore()-s.getTscore();

        if (ret>0) ret=1;
        else if (ret<0) ret=-1;

        return ret;
    }

    @Override
    public String toString() {
    
    
        return number +
                "," + tscore +
                "," + pscore +
                "," + name +
                "," + sex;
    }
}

class newComparetor implements Comparator<Staff> {
    
    
    public newComparetor() {
    
    
    }

    @Override
    public int compare(Staff o1, Staff o2) {
    
    
        int ret=o1.getTscore()-o2.getTscore();
        if (ret>0)ret=1;
        else if (ret<0)ret=-1;
        return ret;
    }
}

4.利用集合类排序 (15 分)

借助集合类对输入的n个字符串按照字典序排序。

输入格式:
共有若干行,每行一个字符串,最后一行总是"###"。

输出格式:
按字典序排序好的用空格分隔的一行字符串。

输入样例:
bbb
aaa
abab
aaaa
cabc

输出样例:
在这里给出相应的输出。例如:

aaa aaaa abab bbb cabc

方法一:使用list集合排序,需要用到集合工具类Collections。

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<String> list = new ArrayList<String>();
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        while(!str.equals("###")) {
    
    
            list.add(str);
            str = sc.nextLine();
        }
        sc.close();
        Collections.sort(list);

        for(String temp:list) {
    
    
            System.out.print(temp+" ");
        }
    }
}

方法二:利用TreeSet集合可排序的特性,调用其自然排序。

import java.util.Scanner;
import java.util.TreeSet;

public class Demo {
    
    
	public static void main(String[] args) {
    
    
		TreeSet<String> set = new TreeSet<String>();
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		while(!str.equals("###")) {
    
    
			set.add(str);
			str = sc.nextLine();
		}
		sc.close();
		
		for(String temp:set) {
    
    
			System.out.print(temp+" ");
		}
	}
}

5.jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (15 分)

定义Person抽象类,Student类、Company类,Employee类。

Person类的属性:String name, int age, boolean gender
Person类的方法:

public Person(String name, int age, boolean gender);
public String toString();         //返回"name-age-gender"格式的字符串
public boolean equals(Object obj);//比较name、age、gender,都相同返回true,否则返回false

Student类继承自Person,属性:String stuNo, String clazz
Student类的方法:

//建议使用super复用Person类的相关有参构造函数
public Student(String name, int age, boolean gender, String stuNo, String clazz);
public String toString();         //返回 “Student:person的toString-stuNo-clazz”格式的字符串
public boolean equals(Object obj);//首先调用父类的equals方法,如果返回true,则继续比较stuNo与clazz。

Company类属性:String name
Company类方法:

public Company(String name);
public String toString();         //直接返回name
public boolean equals(Object obj);//name相同返回true

Employee类继承自Person,属性:Company company, double salary
Employee类方法:

//建议使用super复用Person类的相关有参构造函数
public Employee(String name, int age, boolean gender, double salary, Company company);
public String toString();         //返回"Employee:person的toString-company-salary"格式的字符串
public boolean equals(Object obj);//首先调用父类的equals方法,如果返回true。再比较company与salary。
//比较salary属性时,使用DecimalFormat df = new DecimalFormat("#.#");保留1位小数

编写equals方法重要说明:

1.对Employee的company属性的比较。要考虑传入为null的情况。如果company不为null且传入为null,返回false
2.对所有String字符类型比较时,也要考虑null情况。

提示
1.排序可使用Collections.sort
2.equals方法要考虑周全

#main方法说明

1.创建若干Student对象、Employee对象。
输入s,然后依次输入name age gender stuNo clazz创建Student对象。
输入e,然后依次输入name age gender salary company创建Employee对象。
然后将创建好的对象放入List personList。输入其他字符,则结束创建。
**创建说明:**对于String类型,如果为null则不创建对象,而赋值为null。对于company属性,如果为null则赋值为null,否则创建相应的Company对象。

2.对personList中的元素实现先按照姓名升序排序,姓名相同再按照年龄升序排序。提示:可使用Comparable或Comparator

3.接受输入,如果输入为exit则return退出程序,否则继续下面步骤。

4.将personList中的元素按照类型分别放到stuList与empList。注意:不要将两个内容相同的对象放入列表(是否相同是根据equals返回结果进行判定)。

5.输出字符串stuList,然后输出stuList中的每个对象。

6.输出字符串empList,然后输出empList中的每个对象。

1-3为一个测试点 4-6为一个测试点

输入样例:

s zhang 23 false 001 net15
e wang 18 true 3000.51 IBM
s zhang 23 false 001 net15
e bo 25 true 5000.51 IBM
e bo 25 true 5000.52 IBM
e bo 18 true 5000.54 IBM
e tan 25 true 5000.56 IBM
e tan 25 true 5000.51 IBM
s wang 17 false 002 null
s wang 17 false 002 null
e hua 16 false 1000 null
s wang 17 false 002 net16
e hua 16 false 1000 null
e hua 18 false 1234 MicroSoft
!
continue

输出样例:

Employee:bo-18-true-IBM-5000.54
Employee:bo-25-true-IBM-5000.51
Employee:bo-25-true-IBM-5000.52
Employee:hua-16-false-null-1000.0
Employee:hua-16-false-null-1000.0
Employee:hua-18-false-MicroSoft-1234.0
Employee:tan-25-true-IBM-5000.56
Employee:tan-25-true-IBM-5000.51
Student:wang-17-false-002-null
Student:wang-17-false-002-null
Student:wang-17-false-002-net16
Employee:wang-18-true-IBM-3000.51
Student:zhang-23-false-001-net15
Student:zhang-23-false-001-net15
stuList
Student:wang-17-false-002-null
Student:wang-17-false-002-net16
Student:zhang-23-false-001-net15
empList
Employee:bo-18-true-IBM-5000.54
Employee:bo-25-true-IBM-5000.51
Employee:hua-16-false-null-1000.0
Employee:hua-18-false-MicroSoft-1234.0
Employee:tan-25-true-IBM-5000.56
Employee:tan-25-true-IBM-5000.51
Employee:wang-18-true-IBM-3000.51

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

abstract class Person{
    
    		//按照题目要求定义抽象类,其实是不是抽象类并不重要
	private String name, c;
	private int age;
	private boolean gender;
	
	public String getName() {
    
    
		return name;
	}

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

	public String getC() {
    
    
		return c;
	}

//	public void setC(String c) {
    
    
//		this.c = c;
//	}

	public int getAge() {
    
    
		return age;
	}

//	public void setAge() {
    
    
//		this.age = age;
//	}

	public boolean isGender() {
    
    
		return gender;
	}
//
//	public void setGender(boolean gender) {
    
    
//		this.gender = gender;
//	}

	public Person(String c, String name, int age, boolean gender) {
    
    
		this.c = c;
		this.name = name;
		this.age = age;
		this.gender = gender;
	}
	
	@Override
	public String toString() {
    
    
		return name + "-" + age + "-" + gender;
		//返回"name-age-gender"格式的字符串
	}
	
	public boolean equals(Object obj) {
    
    		
		Person per = (Person) obj;
		//对于String类型,如果为null则不创建对象,而赋值为null。比较name之前应先判断其是否为空。
		if(per.name == null || this.name == null)
			return false;
		return (per.name.compareTo(this.name) == 0 && per.age == this.age && per.gender == this.gender );
		//比较name、age、gender,都相同返回true,否则返回false
	}
}

class Student extends Person{
    
    
	private String stuNo;
	private String clazz;
	
//	public String getStuNo() {
    
    
//		return stuNo;
//	}
//
//	public void setStuNo(String stuNo) {
    
    
//		this.stuNo = stuNo;
//	}
//
//	public String getClazz() {
    
    
//		return clazz;
//	}
//
//	public void setClazz(String clazz) {
    
    
//		this.clazz = clazz;
//	}

	public Student(String c, String name, int age, boolean gender, String stuNo, String clazz) {
    
    
		super(c, name, age, gender);	//用super复用Person类的相关有参构造函数,切记放在首句
		this.stuNo = stuNo;
		this.clazz = clazz;
	}
	
	public String toString(){
    
    	
		return super.toString() + "-" + stuNo + "-" + clazz;
		//返回 “Student:person的toString-stuNo-clazz”格式的字符串
	}
	
	public boolean equals(Object obj) {
    
    
		Student per = (Student)obj;
		if(super.equals(obj)) {
    
    		
			//首先调用父类的equals方法,如果返回true,则继续比较stuNo与clazz。
			if(per.stuNo == null || per.clazz == null || this.stuNo == null || this.clazz == null) 
				return false;
			return (per.stuNo.compareTo(this.stuNo) == 0 && per.clazz.compareTo(this.clazz) == 0);
		}
		return false;
	}
}

class Company{
    
    
	private String name;
	
//	public String getName() {
    
    
//		return name;
//	}
//
//	public void setName(String name) {
    
    
//		this.name = name;
//	}
//
	public Company(String name) {
    
    
		this.name = name;
	}
	
	public String toString() {
    
    	//直接返回name
		return name;
	}
	
//	@Override
//	public int hashCode() {
    
    
//		final int prime = 31;
//		int result = 1;
//		result = prime * result + ((name == null) ? 0 : name.hashCode());
//		return result;
//	}

//右键Source或者Alt+Shift+s;然后选择Generate hashCode() and equals()...(这两个一般要一起用的)
	@Override
	public boolean equals(Object obj) {
    
    
		if (this == obj)	//如果this和obj指向的内存单元相同,即两个指的就是同一个东西当然要返回true了
			return true;
		if (obj == null)	//如果obj指向空
			return false;
		if (getClass() != obj.getClass())	//getClass()获得类名,若类都不同那内容肯定也不同了
			return false;
		Company other = (Company) obj;
		if (name == null) {
    
    
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;	//name相同返回true
	}
}

class Employee extends Person{
    
    
	private Company company;
	private double salary;
	
//	public Company getCompany() {
    
    
//		return company;
//	}
//
//	public void setCompany(Company company) {
    
    
//		this.company = company;
//	}
//
//	public double getSalary() {
    
    
//		return salary;
//	}
//
//	public void setSalary(double salary) {
    
    
//		this.salary = salary;
//	}

	public Employee(String c, String name, int age, boolean gender, double salary, Company company) {
    
    
		super(c, name, age, gender);		//使用super复用Person类的相关有参构造函数
		this.salary = salary;
		this.company = company;
	}
	
	
	@Override
	public String toString() {
    
    
		return super.toString() + "-" + company.toString() + "-" + salary;
		//返回"Employee:person的toString-company-salary"格式的字符串
	}
	
	@Override
	public boolean equals(Object obj) {
    
    
		if(super.equals(obj)) {
    
    		//首先调用父类的equals方法,如果返回true。再比较company与salary。
			Employee per = (Employee)obj;
			if(this.company.toString() == null || per.company.toString() == null) 	
				return false;
			//比较salary属性时,使用DecimalFormat df = new DecimalFormat("#.#");保留1位小数
			String newpersalary = new DecimalFormat("#.#").format(per.salary);
			String newthissalary = new DecimalFormat("#.#").format(this.salary);
			return (per.company.toString().compareTo(this.company.toString()) == 0 && newpersalary.compareTo(newthissalary) == 0);
		}
		return false;
	}
	
}

public class Main {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		String c, name, stuNo, clazz, companyname, str;
		int age;
		boolean gender;
		double salary;
		ArrayList<Person> personList = new ArrayList<Person>();
		ArrayList<Student> studentList = new ArrayList<Student>();
		ArrayList<Employee> employeeList = new ArrayList<Employee>();
		while(true) {
    
    
			c = input.next();
			if(c.compareTo("s") == 0) {
    
    
				name = input.next();
				age = input.nextInt();
				gender = input.nextBoolean();
				stuNo = input.next();
				clazz = input.next();
				Student student = new Student(c, name, age, gender, stuNo, clazz);
				personList.add(student);
			}
			else if(c.compareTo("e") == 0) {
    
    
				name = input.next();
				age = input.nextInt();
				gender = input.nextBoolean();
				salary = input.nextDouble();
				companyname = input.next();
				Company company = new Company(companyname);
				Employee employee = new Employee(c, name, age, gender, salary, company);
				personList.add(employee);
			}
			else {
    
    
				personList.sort(Comparator.comparing(Person::getName).thenComparingInt(Person::getAge));
				//对personList中的元素实现先按照姓名升序排序,姓名相同再按照年龄升序排序。
				for(int i = 0; i < personList.size(); ++i) {
    
    
					//将personList中元素输出,并将其非重复元素分到studentList和employeeList数组中
					if(personList.get(i).getC().compareTo("s") == 0) {
    
    
						System.out.println("Student:" + personList.get(i).toString());
						int flag = 0;
						for(int j = 0; j < studentList.size(); ++j) {
    
    
							if(studentList.get(j).equals(personList.get(i))) {
    
    
								flag = 1;
								break;
							}
						}
						if(flag == 0) 
							studentList.add((Student)personList.get(i));
					}
					else if(personList.get(i).getC().compareTo("e") == 0){
    
    
						System.out.println("Employee:" + personList.get(i).toString());
						int flag = 0;
						for(int j = 0; j < employeeList.size(); ++j) {
    
    
							if(employeeList.get(j).equals(personList.get(i))) {
    
    
								flag = 1;
								break;
							}
						}
						if(flag == 0) 
							employeeList.add((Employee)personList.get(i));
					}
				}
				str = input.next();
				//如果输入为exit则return退出程序
				if(str.compareTo("exit") == 0 || str.compareTo("return") == 0)
					return;
				System.out.println("stuList");
				for(int i = 0; i < studentList.size(); ++i) 
					System.out.println("Student:" + studentList.get(i).toString());
				System.out.println("empList");
				for(int i = 0; i < employeeList.size(); ++i)
					System.out.println("Employee:" + employeeList.get(i).toString());
			}
		}
	}
}


6.sdust-Java-学生成绩读取与排序 (20 分)

1)从键盘录入多行学生成绩的信息,每行表示一个学生的一门课的成绩,最后一行以“exit”结束。每行文本的格式为:学号,姓名,课程名,成绩。程序能够读取学生及其成绩,将具有相同学号的学生及其成绩读取到一个Student(学生类)类对象的列表(List)stuList中; 2)程序在读取完学生及其成绩的数据后,能够将stuList中的学生按照平均成绩降序排列(如果平均成绩相同,学号数字小的排在前面), 并输出排序后的学生学号、姓名和成绩。

输入格式:
多行表示的学生成绩,每一行是一个学生的姓名、学号、课程名、成绩(整数)。不同行可以是同一名学生(学号相同的为同一名学生)不同课程的成绩。

输出格式:
按照学生平均成绩降序排序(平均成绩相同的学号小的在前面)的学生排名(具体输出格式参照样例)。

输入样例:
小明,2001,Java,88
小刚,2002,Java,78
小丁,2003,Java,56
小宏,2004,Java,85
小明,2001,Python,84
小刚,2002,Python,98
小丁,2003,JavaWeb,66
小宏,2004,Algorithm,87
exit

输出样例:
No1:2002,小刚
No2:2001,小明
No3:2004,小宏
No4:2003,小丁


import java.util.*;

class Student implements Comparable<Student>{
    
    
    //中间注释掉的部分是当初在调试时所加入的调试点,以及调试用的方法
    private String name,id;
    private int subject=1;
    private int score;
    private double sum=0;
    Student(){
    
    }

    Student(String name,String id,int score){
    
    
        this.name=name;
        this.id=id;
        this.score=score;
    }

    public String getid(){
    
    
        return this.id;
    }
    public void subjectadd() {
    
    
        this.subject++;
    }
    public void scoreadd(int score){
    
    
        this.score=this.score+score;
    }
    public String getname() {
    
    
        return this.name;
    }
    public void sum() {
    
    
        this.sum=this.score/this.subject;
    }

    /*public int rescore() {
         return this.score;
     }*/
   /* public double getsum(){
        return this.sum;
    }*/

    public int compareTo(Student o1){
    
    
        Student one = (Student) o1;
        if(this.sum-one.sum!=0)
            return (int)(one.sum-this.sum);
        else
            return this.id.compareTo(one.id);
    }
}

public class Main{
    
    
    public static void main(String[] args) {
    
    
        Scanner sc=new Scanner(System.in);
        List<Student> list =new ArrayList<Student>();
        int i,flag=0;
        String k;
        String[] and =new String[5];

        while(sc.hasNext())
        {
    
    
            k=sc.next();
            and=k.split(",");
            if(k.compareTo("exit")==0)
                break;
            for(i=0;i<list.size();i++)
            {
    
    
                if(list.get(i).getid().compareTo(and[1])==0)
                {
    
    
                    flag=1;
                    break;
                }
            }
            if(flag==1)
            {
    
    
                list.get(i).subjectadd();
                list.get(i).scoreadd(Integer.parseInt(and[3]));
            }
            else
            {
    
    
                list.add(new Student(and[0],and[1],Integer.parseInt(and[3])));
            }
            flag=0;
        }

        for(i=0;i<list.size();i++)
            list.get(i).sum();
        Collections.sort(list);
        for(i=0;i<list.size();i++)
        {
    
    

            System.out.println("No"+(i+1)+":"+list.get(i).getid()+","+list.get(i).getname());
            //System.out.println(list.get(i).rescore());
        }

    }
}

猜你喜欢

转载自blog.csdn.net/Anemia_/article/details/118305295