Java求助,最后两个过不了
  • 板块P1104 生日
  • 楼主frank_yy
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/5/29 12:02
  • 上次更新2023/11/4 22:34:43
查看原帖
Java求助,最后两个过不了
433015
frank_yy楼主2021/5/29 12:02

import java.util.Comparator;

import java.util.Scanner;

import java.util.TreeSet;

public class Main {

private static class Person {
	private String name;
	private Integer year;
	private Integer month;
	private Integer day;

	public Person() {
		super();

	}

	public Person(String name, Integer year, Integer month, Integer day) {
		super();
		this.name = name;
		this.year = year;
		this.month = month;
		this.day = day;
	}

	public String getName() {
		return name;
	}

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

	public int getYear() {
		return year;
	}

	public void setYear(Integer year) {
		this.year = year;
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(Integer month) {
		this.month = month;
	}

	public int getDay() {
		return day;
	}

	public void setDay(Integer day) {
		this.day = day;
	}

}

public static void main(String[] args) {

	TreeSet<Person> treeSet = new TreeSet<Main.Person>(new Comparator<Person>() {
		@Override
		public int compare(Person p1, Person p2) {
			int num = p1.getYear() - p2.getYear();

			int num2 = num == 0 ? p1.getMonth() - p2.getMonth() : num;

			int num3 = num2 == 0 ? p1.getDay() - p2.getDay() : num2;

			int num4 = num3 == 0 ? p1.getName().compareTo(p2.getName()) : num3;

			return num4;

		}
	});

	Scanner scanner = new Scanner(System.in);

	String n = scanner.nextLine();

	int num = Integer.parseInt(n);

	Person[] persons = new Person[num];

	for (int x = 0; x < num; x++) {
		String[] info = scanner.nextLine().split("\\s");
		persons[x] = new Person(info[0],Integer.parseInt(info[1]),Integer.parseInt(info[2]),Integer.parseInt(info[3]));

		treeSet.add(persons[x]);
	}

	for (Person p : treeSet) {
		System.out.println(p.getName());
	}

}

}



------------
2021/5/29 12:02
加载中...