Vector equals Vector == true (se as listas não tiverem sido preenchidas) !!!

Para a classe Vector duas instâncias são iguais se elas tem os mesmos elementos na mesma ordem. Como em tempo de execução não existe generics, então (Vector<Integer> equals Vector<Double>) == true se as listas não contiverem elementos.

 
 

Exemplo 1:

 
 

import java.util.Vector;

 
 

public class Teste {

public static void main(String[] args){

Vector<Double> dbl = new Vector<Double>();

Vector<Integer> ing = new Vector<Integer>();

 
 

System.out.println(dbl.equals(ing));

 
 

// preenche listas

for(int i = 0; i < 10; i++){

dbl.add((double)i);

ing.add(i);

}

 
 

System.out.println(dbl.equals(ing));

}

}

Output:

true

false

 
 

 
 

No exemplo 2 segue o mesmo comportamento do exemplo 1 mesmo que variemos o tipo do objeto instanciado (entre ArrayList e Vector).

 
 

Exemplo 2:

 
 

import java.util.List;

import java.util.Vector;

import java.util.ArrayList;

 
 

public class Teste {

public static void main(String[] args){

List<Double> dbl = new Vector<Double>();

List<Integer> ing = new ArrayList<Integer>();

 
 

System.out.println(dbl.equals(ing));

 
 

// preenche listas

for(int i = 0; i < 10; i++){

dbl.add((double)i);

ing.add(i);

}

 
 

System.out.println(dbl.equals(ing));

}

}

Output:

true

false

 
 

No exemplo 3 podemos observar que as listas são consideradas iguais mesmo depois de preenchidas.

 
 

Exemplo 3:

 
 

import java.util.List;

import java.util.Vector;

import java.util.ArrayList;

 
 

public class Teste {

public static void main(String[] args){

List<Integer> lst1 = new Vector<Integer>();

List<Integer> lst2 = new ArrayList<Integer>();

 
 

System.out.println(lst1.equals(lst2));

 
 

// preenche listas

for(int i = 0; i < 10; i++){

lst1.add(i);

lst2.add(i);

}

 
 

System.out.println(lst1.equals(lst2));

}

}

Output:

true

true

Esta entrada foi publicada em Arrays & Colletions com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s