//GetDistinctIntegerSquares.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class GetDistinctIntegerSquares
{
    public static void main(String args[])
    {
        //We will produce a list of distinct squares of the integers
        //in following list of integers:
        List<Integer> integers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
        System.out.println("\nList of integers: " + integers);

        System.out.println("\n=============");
        System.out.println("Using Java 7: ");

        List<Integer> squaresList = new ArrayList<Integer>();
        for (Integer integer : integers)
        {
            Integer square = integer * integer;
            if (!squaresList.contains(square))
            {
                squaresList.add(square);
            }
        }
        System.out.println("Distinct integer squares: " + squaresList);

        System.out.println("\n=============");
        System.out.println("Using Java 8: ");
        System.out.println
        (
            "Distinct integer squares: " + integers
            .stream()
            .map(i -> i * i)
            .distinct()
            .collect(Collectors.toList())
        );
    }
}
/*  Output:

    List of integers: [3, 2, 2, 3, 7, 3, 5]

    =============
    Using Java 7:
    Distinct integer squares: [9, 4, 49, 25]

    =============
    Using Java 8:
    Distinct integer squares: [9, 4, 49, 25]
*/
