Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.PrintStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {

    public static void main(String[] args) throws Exception {
        // Lambda
        List<Person> persons = Arrays.asList(new Person("B", "V"), new Person("R", "K"));

        Collections.sort(persons, (Person a, Person b) -> {
            return b.firstName.compareTo(a.firstName);
        });
        Collections.sort(persons, (a, b) -> b.firstName.compareTo(a.firstName));
    }

}

/**
 * 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;
    }

}