Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.PrintStream;
import java.util.Comparator;

public class Main {

    public static void main(String[] args) throws Exception {
        Comparator<Person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName);
        Person p1 = new Person("John", "Doe");
        Person p2 = new Person("Alice", "Wonderland");
        comparator.compare(p1, p2); // > 0
        comparator.reversed().compare(p1, p2); // <0
    }

}

/**
 * Simple person object with first and last name.
 */
class Person implements Cloneable {

    String firstName = null;
    String lastName = null;

    // constructors

    public Person() {
    }

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    // Person methods

    public void println(PrintStream out) {
        out.println(this.toString());
    }

    public int compareToLastNameThenFirstName(Person p) {
        int result = 0;
        result = this.getLastName().compareTo(p.getLastName());
        if (result == 0) {
            result = this.getFirstName().compareTo(p.getFirstName());
        }
        return result;
    }

    // implement Cloneable methods

    @Override
    public Person clone() {
        Person cloneOf = new Person(firstName, lastName);
        return cloneOf;
    }

    // implement Object methods

    public boolean equals(Person p) {
        if (this.firstName.equals(p.getFirstName()))
            return false;
        if (this.lastName.equals(p.getLastName()))
            return false;
        return true;
    }

    @Override
    public String toString() {
        return "(" + firstName + " " + lastName + ")";
    }

    // getters and setters

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}