Los tipos primitivos son los tipos de datos más básicos disponibles en el lenguaje Java. Dichos tipos tienen un solo propósito: contener valores puros y simples de un tipo. Dado que java es un lenguaje de tipo estático donde cada variable y tipo de expresión ya se conoce en tiempo de compilación, por lo tanto, no puede definir una nueva operación para tales tipos primitivos.
Ilustración:
Invalid : vector.addElement(3) ; Valid : vector.addElelment("3") ;
Conclusión:
- Los tipos primitivos de Java no son tipos referenciados. Por ejemplo, int no es un objeto.
- Java hace genéricos utilizando el borrado de tipos de tipos de referencia. Por ejemplo, A List<?> es realmente un List<Object> en tiempo de ejecución.
Las colecciones son el marco utilizado para almacenar y manipular un grupo de objetos. Colección Java significa una sola unidad de objetos. Dado que las dos afirmaciones anteriores son verdaderas, las colecciones genéricas de Java no pueden almacenar tipos primitivos directamente.
Wrapper Class proporciona una forma de usar tipos de datos primitivos (int, boolean, etc.) como objetos o una clase Wrapper es una clase cuyo objeto envuelve o contiene tipos de datos primitivos. Da a luz a dos conceptos de la siguiente manera:
- autoboxeo
- Desembalaje
Tipo de datos primitivos | Clase contenedora |
---|---|
byte | Byte |
corto | Corto |
En t | Entero |
largo | Largo |
flotar | Flotar |
doble | Doble |
booleano | booleano |
carbonizarse | Personaje |
Autoboxing es la conversión automática de tipos primitivos al objeto de sus clases contenedoras correspondientes que se conoce como autoboxing. Por ejemplo:
- Conversión de int a entero
- Conversión de largo a largo
- Conversión de doble a doble, etc.
Unboxing es solo el proceso inverso al autoboxing. La conversión automática de un objeto de una clase contenedora a su tipo primitivo correspondiente se conoce como unboxing. Por ejemplo: conversión de Integer a int, Long a long, Double a double, etc.
Ilustración: Autoboxing
Java
// Importing input output classes import java.io.*; class GFG { // Main driver method public static void main(String args[]) { // Custom input Integer i = new Integer(21); // Boxing Integer j = 5; System.out.println("i=" + i + "\n j=" + j); } }
Producción:
i=21 j=5
Ilustración 2: Desembalaje
Java
// Import input output classes import java.io.*; // Class public class GFG { // MAin driver method public static void main(String args[]) { // Custom input Integer i = new Integer(50); // Unboxing int a = i; // Unboxing int b = i.intValue(); // Print and display System.out.println("a=" + a + "\nb=" + b); } }
Producción:
a=50 b=50
Implementación: mientras usa el compilador java de la colección, cree un objeto contenedor del tipo primitivo y agréguelo a la colección usando genéricos .
Ejemplo 1:
Java
// Java Program to illustrate Collections // are not directly storing primitives types // Importing input output classes import java.io.*; // Importing all classes from // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String[] args) { // Creating a list of elements of Integer type. List<Integer> list = new ArrayList<Integer>(); // Iterating over elements of List object for (int i = 0; i < 10; i++) { // Adding the int primitives type values // If elements are added using add() method // then compiler automatically treats as // add(Integer.valueOf(i)) list.add(i); // This is what compiler does and // hence the goal achieved. // Print the primitive values System.out.println(i); } } }
0 1 2 3 4 5 6 7 8 9
Ejemplo 2: colecciones para almacenar tipos de datos primitivos
Java
// Java Program to illustrate Collections // are not directly storing primitives types // Importing Map and HashMap classes // from java.util package import java.util.HashMap; import java.util.Map; // Class public class GFG { // Main driver method public static void main(String[] args) throws Exception { // Creating an object of Map type Map map = new HashMap(); // Creating int wrapper object // Custom input Integer var = new Integer(21); // Storing int to map map.put("key", var); // Getting int value from map Integer refVar = (Integer)map.get("key"); // Get the integer value from wrapper object int i = refVar.intValue(); // Display message for successful compilation System.out.print("Successfully compiled and executed"); } }
Producción:
Successfully compiled and executed
Publicación traducida automáticamente
Artículo escrito por aarushi_bagri y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA