Person.java Source code

Java tutorial

Introduction

Here is the source code for Person.java

Source

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;

class Person {
    public String name;
    public int id;
    public Date hireDate;

    public Person(String iname, int iid, Date ihireDate) {
        name = iname;
        id = iid;
        hireDate = ihireDate;
    }

    public String toString() {
        return name + " " + id + " " + hireDate.toString();
    }

}

// Comparator
class CompId implements Comparator<Person> {
    @Override
    public int compare(Person arg0, Person arg1) {
        return arg0.id - arg1.id;
    }
}

class CompDate implements Comparator<Person> {
    private int mod = 1;

    public CompDate(boolean desc) {
        if (desc)
            mod = -1;
    }

    @Override
    public int compare(Person arg0, Person arg1) {
        return mod * arg0.hireDate.compareTo(arg1.hireDate);
    }
}

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat df = new SimpleDateFormat("mm-dd-yyyy");
        ArrayList<Person> people;
        people = new ArrayList<Person>();
        try {
            people.add(new Person("A", 9, df.parse("12-12-2014")));
            people.add(new Person("B", 2, df.parse("1-12-2013")));
            people.add(new Person("C", 4, df.parse("12-2-2012")));
        } catch (ParseException e) {
            e.printStackTrace();
        }

        Collections.sort(people, new CompId());
        System.out.println("BY ID");
        for (Person p : people) {
            System.out.println(p.toString());
        }

        Collections.sort(people, new CompDate(false));
        System.out.println("BY Date asc");
        for (Person p : people) {
            System.out.println(p.toString());
        }
        Collections.sort(people, new CompDate(true));
        System.out.println("BY Date desc");
        for (Person p : people) {
            System.out.println(p.toString());
        }

    }

}