【PAT甲级 Date时间比较】1006 Sign In and Sign Out (20 分) Java版 5/5通过
生活随笔
收集整理的這篇文章主要介紹了
【PAT甲级 Date时间比较】1006 Sign In and Sign Out (20 分) Java版 5/5通过
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
水題。
給出幾個人的進(jìn)入時間和離開時間,找到他們誰是最先進(jìn)入的,誰是最后離開的。
思路
用ArrayList存放所有人,然后排序,第一次按照進(jìn)入時間排序,輸出排序后第一個人的id,第二次按照離開時間排序,輸出排序后第一個人的id
Java自帶的集合真的方便…
附:比較日期大小的方式
- 直接用Date自帶方法before()和after()比較(本題使用的方法)
- 用String的compareTo()方法:
返回正值是代表左側(cè)日期大于參數(shù)日期,反之亦然,日期格式必須一致
- 轉(zhuǎn)成date格式換成秒數(shù)比較秒數(shù)大小,getTime()方法
代碼
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Scanner;public class Main {public static void main(String[] args) throws ParseException {Scanner sc = new Scanner(System.in);int total = Integer.parseInt(sc.nextLine());List<Person> list = new ArrayList<Person>();SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");String line;for (int i = 0; i < total; i++) {line = sc.nextLine();String[] p = line.split(" ");list.add(new Person(p[0], df.parse(p[1]), df.parse(p[2])));}Collections.sort(list, new Comparator<Person>() {// 小到大@Overridepublic int compare(Person u1, Person u2) {// 重寫 Comparator 函數(shù)if (u1.d1.before(u2.d1))return -1;else if (u1.d1.after(u2.d1))return 1;elsereturn 0;}});// System.out.println(list);System.out.print(list.get(0).id + " ");Collections.sort(list, new Comparator<Person>() {// 大到小@Overridepublic int compare(Person u1, Person u2) {// 重寫 Comparator 函數(shù)if (u1.d2.before(u2.d2))return 1;else if (u1.d2.after(u2.d2))return -1;elsereturn 0;}});// System.out.println(list);System.out.println(list.get(0).id);} }class Person {String id;Date d1;Date d2;public Person(String id, Date d1, Date d2) {this.id = id;this.d1 = d1;this.d2 = d2;}// 便于測試public String toString() {return id + " " + d1.toString() + " " + d2.toString();} }結(jié)果
總結(jié)
以上是生活随笔為你收集整理的【PAT甲级 Date时间比较】1006 Sign In and Sign Out (20 分) Java版 5/5通过的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PAT甲级 ArrayList存放cl
- 下一篇: 银联高校极客挑战赛 初赛 第一场、第二场