Public Sub Ejemplo1()
Dim tabla1 As Integer[]
Dim tabla2 As Integer[]
tabla1 = New Integer[100]
MuestraDireccion("tabla1", tabla1)
tabla2 = tabla1
MuestraDireccion("tabla2", tabla2)
tabla1 = Null 'Hacemos nula
MuestraDireccion("tabla1", tabla1)
MuestraDireccion("tabla2", tabla2)
End
Public Sub MuestraDireccion(nombre As String, tabla As Integer[])
Print "La referencia de " & nombre & " es: " & Object.Address(tabla)
End
Cita:
La referencia de tabla1 es: 55AD39A9A518
La referencia de tabla2 es: 55AD39A9A518
La referencia de tabla1 es: 0
La referencia de tabla2 es: 55AD39A9A518
Private t1[3] As Integer
Private t2[3] As Integer
Public Sub Main()
t1 = [1, 2, 3]
t2 = [1, 2, 3]
'Referencias distintas, valor falso
Print t1 = t2
Print Aiguales(t1, t2)
End
Public Function Aiguales(at1 As Integer[], at2 As Integer[]) As Boolean
Dim iguales As Boolean
Dim i As Integer
'Decimos que son iguales desde el principio
iguales = True
If at1.Length <> at2.Length Then iguales = False
While (iguales And i < at1.Count)
If at1 = at2 Then
Inc i
Else
iguales = False
Endif
Wend
Return iguales
End
Cita:False
True
public class CompararDosTablas {
public static void main(String[] args) {
// Dos tablas iguales
int[] t1 = {7, 9, 20};
int[] t2 = {7, 9, 20};
System.out.println(t1 == t2); // Sin embargo muestra false
// Ya que sus referencias son distintas
// Dos tablas son iguales si contienen los mismos elementos
// en el mismo orden
// Comparamos con el método estático equals
System.out.println(Arrays.equals(t1, t2)); // muestra true
}
}