1+ import java .util .Arrays ;
2+
13/** #05 - Java -> Jesus Antonio Escamilla */
24
35public class JesusAntonioEEscamilla {
@@ -13,6 +15,12 @@ public static void main(String[] args) {
1315 funciónPorValor ();
1416 System .out .println ("Por Referencia" );
1517 funciónPorReferencia ();
18+
19+ //EXTRA
20+ System .out .println ("Extra por Valor" );
21+ extraValor ();
22+ System .out .println ("Extra por Referencia" );
23+ extraReferencia ();
1624 }
1725
1826 //---EJERCIÓ---
@@ -70,7 +78,68 @@ public static void modificarReferencial(int[] array){
7078
7179 /**-----DIFICULTAD EXTRA-----*/
7280
73- //Pendiente
81+ // Por VALOR
82+ // Función para intercambiar valores de tipo primitivo
83+ public static int [] intercambioValores (int a , int b ){
84+ int temp = a ;
85+ a = b ;
86+ b = temp ;
87+ return new int []{a , b };
88+ }
89+
90+ public static void extraValor (){
91+ // Variables originales
92+ int x = 5 ;
93+ int y = 10 ;
94+
95+ // Llamada la nuevas variables en funciones
96+ int [] resultados = intercambioValores (x , y );
97+ int nuevoX = resultados [0 ];
98+ int nuevoY = resultados [1 ];
99+
100+ // Los mostramos el resultado en la consola
101+ System .out .println ("Originales: x = " + x + ", y = " + y );
102+ System .out .println ("Nuevas: nuevoX = " + nuevoX + ", nuevoY = " + nuevoY );
103+ }
104+
105+
106+ // Por REFERENCIA
107+ // Clase contenedor para las lista de referencia
108+ public static class ListaContenedor {
109+ int [] lista1 ;
110+ int [] lista2 ;
111+
112+ public ListaContenedor (int [] lista1 , int [] lista2 ){
113+ this .lista1 = lista1 ;
114+ this .lista2 = lista2 ;
115+ }
116+ }
117+
118+ // Función para intercambiar las referencia de las lista
119+ public static ListaContenedor intercambiarLista (ListaContenedor contenedor ){
120+ int [] temp = contenedor .lista1 ;
121+ contenedor .lista1 = contenedor .lista2 ;
122+ contenedor .lista2 = temp ;
123+ return contenedor ;
124+ }
125+
126+ public static void extraReferencia (){
127+ // Variables Originales
128+ int [] listaA = {1 , 2 , 3 };
129+ int [] listaB = {4 , 5 , 6 };
130+
131+ // Crear copias de las listas
132+ int [] listAOriginal = Arrays .copyOf (listaA , listaA .length );
133+ int [] listBOriginal = Arrays .copyOf (listaB , listaB .length );
134+
135+ // Crear contenedores y llamar a la función
136+ ListaContenedor contenedor = new ListaContenedor (listaA , listaB );
137+ ListaContenedor nuevasLista = intercambiarLista (contenedor );
138+
139+ // Los mostramos el resultado en la consola
140+ System .out .println ("Originales: listaA: " + Arrays .toString (listAOriginal ) + ", listaB: " + Arrays .toString (listBOriginal ));
141+ System .out .println ("Nuevas: listaA: " + Arrays .toString (nuevasLista .lista1 ) + ", listaB: " + Arrays .toString (contenedor .lista2 ));
142+ }
74143
75144 /**-----DIFICULTAD EXTRA-----*/
76145}
0 commit comments