Categories: Java

Autoboxing and Unboxing in Java

Primitive data types are handled differently in Java, which led to the development of wrapper classes, which include the components Autoboxing and Unboxing.

Autoboxing:

Autoboxing is the process of transforming a primitive value into an object of the relevant wrapper class. Changing an int to the Integer class, for instance. When a primitive value is one of these, the Java compiler uses autoboxing:

  • passed as a parameter to a method that requests a wrapper class object as a parameter.
  • A variable of the relevant wrapper class was given the assignment.
Unboxing:

Unboxing describes the process of transforming a wrapper-type object to its corresponding primitive value. For instance, convert an int from an Integer. The Java compiler uses unbox when a wrapper class object is:

  • a value of the relevant primitive type is passed as a parameter to a method that anticipates it.
  • assigned to a primitive type variable of the appropriate kind.

NOTE: The benefit of autoboxing and unboxing is that less coding is needed because primitives and Wrappers don’t need to be manually converted.

Wrapper Classes in Java:

A class whose object contains or surrounds primitive data types is known as a wrapper class. Primitive data types can be stored in a field that is created when an object to a wrapper class is created. In other words, we can create a wrapper class object out of a primitive value.

PrimitiveWrapper class
intInteger
byteByte
shortShort
floatFloat
doubleDouble
charCharacter
longLong
booleanBoolean

The classes stated above fall under the numeric type wrapper. These classes contain the primitive types of byte, short, int, long, float, and double.

Example of Autoboxing:

Here, We have produced a list of integer-type entries. Instead of using integer objects, we are adding values of the primitive type int, and the code is correctly compiled. As the Java compiler converts the primitive int i into an Integer wrapped Object and adds it to the list, it does not cause a compile-time error.

// Importing required classes
import java.io.*;
import java.util.*;

// Main class
class Coderz {

 // Main driver method
 public static void main(String[] args)
 {

  // Creating an empty Arraylist of integer type
  ArrayList<Integer> ar = new ArrayList<Integer>();

  // Autoboxing
  ar.add(11);
  ar.add(901);
  ar.add(24);

  // Printing the ArrayList elements
  System.out.println("ArrayList: " + ar);
 }
}
Output:
ArrayList: [11, 901, 24]
Example of Unboxing:

import java.io.*;


class Coderz {

 // Main driver method
 public static void main(String[] args)
 {

  // Creating an Integer Object
  // with custom value say it be 20
  Integer i = new Integer(20);

  // Unboxing the Object
  int j = i;

  // Print statements
  System.out.println("Value of i:" + i);
  System.out.println("Value of j: " + j);

 }
}
Output:
Value of i:20
Value of j: 20
Java Program to Illustrate Find Sum of Even Numbers using Autoboxing and Unboxing:


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

// Main class
class Coderz {

 // Method 1
 // To sum even numbers
 public static int sum_Even(List<Integer> list)
 {

  // Initially setting sum to zero
  int sum = 0;

  for (Integer i : list) {

   // Unboxing of i automatically
   if (i % 2 == 0)
    sum += i;

   // Unboxing of i is done automatically
   // using intvalue implicitly
   if (i.intValue() % 2 == 0)
    sum += i.intValue();
  }

 
  return sum;
 }

 // Method 2
 // Main driver method
 public static void main(String[] args)
 {

  // Creating an empty ArrayList of integer type
  List<Integer> list = new ArrayList<Integer>();

  // Adding the int primitives type values to List
  for (int i = 0; i < 10; i++)
   list.add(i);

  // Getting sum of all even numbers in List
  int sum = sum_Even(list);

  System.out.println("Sum of even numbers = "
      + sum);
 }
}
Output:
Sum of even numbers = 40

Note: also read about the Enums in Java

Follow Me

If you like my post, please follow me to read my latest post on programming and technology.

https://www.instagram.com/coderz.py/

https://www.facebook.com/coderz.py

Share
Published by
Rabecca Fatima

Recent Posts

Find Intersection of Two Singly Linked Lists

You are given two singly linked lists that intersect at some node. Your task is…

2 months ago

Minimum Cost to Paint Houses with K Colors

A builder plans to construct N houses in a row, where each house can be…

2 months ago

Longest Absolute Path in File System Representation

Find the length of the longest absolute path to a file within the abstracted file…

3 months ago

Efficient Order Log Storage

You manage an e-commerce website and need to keep track of the last N order…

3 months ago

Select a Random Element from a Stream

You are given a stream of elements that is too large to fit into memory.…

3 months ago

Estimate π Using Monte Carlo Method

The formula for the area of a circle is given by πr². Use the Monte…

4 months ago