病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
- 老年人(年龄 >= 60岁)比非老年人优先看病。
- 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
- 非老年人按登记的先后顺序看病。
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Day7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=Integer.parseInt(sc.nextLine()); //吸收换行 Listlist1=new ArrayList<>(); //老年人放在一个集合中 List list2=new ArrayList<>(); //非老年人放在一个集合中 for(int j=1;j<=n;j++){ String [] str=sc.nextLine().split(" "); int a=Integer.parseInt(str[1]); if(a>=60){ list1.add(new people(j,str[0],a)); } else list2.add(new people(j,str[0],a)); } Collections.sort(list1); for(int i=0;i { int no; String id; int age; public people(int no,String id, int age) { this.no=no; this.id = id; this.age = age; } @Override public int compareTo(people o) { if (this.age == o.age) return this.no - o.no; else return o.age - this.age; } } }


![[PTA]病人排队(java) [PTA]病人排队(java)](http://www.mshxw.com/aiimages/31/857977.png)
