Data types in Java and Groovy

All the java people know, Java have two different kind of data types for storing data, those are
   1. Primitive types (such as int,float,char, and boolean)
   2. Reference types (such as String and Object)

The disadvantages of primitive types.
  1. You cannot call methods, an values of primitive types. See the example,
     int a = 10;
  If you do like this, while compilation time, the JVM will give the following error.
    "You cannot invoke on toString() on primitivt type int"
  To overcome this issue, the java developers needs Wrapper classes, such as Integer for int, Float for float, and etc.., See the below example
   Integer a= new Integer(10);

But In Groovy we don't have these kind of headache, because it treats everything as an object.
I am going to add two integer arraylist values using both Groovy and Java, then see the advantage of Groovy.

Java Example: 
public class AddArrayList{
    public static void main(String[] args) {
        ArrayList number1 = new ArrayList();
        number1.add(new Integer(10));
        number1.add(new Integer(20));
        number1.add(new Integer(30));
        ArrayList number2 = new ArrayList();
        number2.add(new Integer(10));
        number2.add(new Integer(20));
        number2.add(new Integer(30));
        ArrayList number3 = new ArrayList();
        for(int i=0;i<3;i++) {
            number3.add(new Integer(number1.get(i)+number2.get(i)));
        System.out.println("Addition Results: " + number3);
Groovy Example: 
def number1 = [10,20,30]
def number2 = [10,20,30]
def number3 = []
3.times {
   number3 << number1[it] + number2[it]
println "Addition Results: " + number3

Note: The Groovy automatically done boxing and unboxing operation, whenever it's need.