import java.util.*;
import java.lang.*;
import java.io.*;

class Testing
{
	class Person implements Comparable<Person> {
	    int cpr=200193;
	    int age=21;
	    String name="John Doe";
	    String Country="Uzbekistan";

	    public Person() {}
	    public Person(String name, String Country,int cpr,int age) {
	        this.cpr=cpr;
	        this.age=age;
	        this.name=name;
	        this.Country=Country;
	    }
	
	    public String toString() {
	        return "Person [Country= " + Country + ", Name:" + name + ", Cpr: "+cpr+ ", age: "+age+"]";
	    }
	
	    public int compareTo(Person p) {
	        if(p != null) {
	        	return this.age - p.age;
	        } else throw new NullPointerException();
	    }
	}
	
	Person[] sortedArray = new Person[7];
	int size = -1;
	
	boolean addToArray(Person item) {

    if (item == null) {
        return false;
    } else if (size == -1) {
        size++;
        sortedArray[size] = item;
        return true;
    } else {

        // find the correct position using Binary Search
        int insertionPoint = Arrays
                .binarySearch(sortedArray, 0, size+1, item);
        if (insertionPoint >= 0) {
            // duplicate value
            return false;
        }

        // set the insertionPoint to proper value
        insertionPoint = (-(insertionPoint) - 1);

        // shift
        for (int i = size + 1; i > insertionPoint; i--) {
            sortedArray[i] = sortedArray[i - 1];
        }
        // insert
        sortedArray[insertionPoint] = item;
        size++;

        return true;
    }
}
	
	void test() {
		addToArray(new Person());
		addToArray(new Person("Pete","Germany",111111,86));
		addToArray(new Person("John","Denmark",123456,75));
		addToArray(new Person("Michael Jackson", "America",112345,49));
		for (int i = 0; i <= size; i++) {
			System.out.println(sortedArray[i]);
		}
	}
	
	public static void main (String[] args) throws java.lang.Exception
	{
		Testing t = new Testing();
		t.test();
	}
}