[Resolvido]Verificar tipo de dado em ArrayList híbrido

6 respostas
assustado

Olá, pessoal! Tudo bem?

Estou com uma dúvida em um ArrayList que fiz aqui. Eu gostaria de saber qual é o tipo de dado contido em uma determinada posição da lista. É que não sei como ficaria a comparação. Aí vai o que fiz:

Date data = new Date();

ArrayList lista = new ArrayList();
lista.add("teste1");
lista.add("teste2");
lista.add(data);
lista.add("teste3");

for(int i=0; i<lista.size(); i++){
    if( lista.get(i) == ????? ) {/* Aqui é minha dúvida:
             gostaria de fazer a seguinte verificação: se o tipo de dado
             nesta posição da lista for um Date então ele realizará uma determinada tarefa*/
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  uma data.");
    }else {
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  NÃO  uma data.");
    }
}

Também gostaria de saber se este código não está do tipo “xaxixo” :lol: , ou seja, se os senhores e/ou senhoritas aconselham uma outra forma de fazê-lo.

Desde já agradeço. Bom fim de tarde a todos. :smiley:

6 Respostas

T
if (lista.get(i) instanceof java.util.Date) {
...

E de fato não é bom pôr vários tipos de dados em uma mesma estrutura de dados, a menos que você saiba o que está fazendo.

E as senhoras? Também deve haver mulheres casadas no fórum. Basta escrever “vocês” ou, se você se pautar pela formalidade, “V. Sas.” (Vossas Senhorias).

C

Maneira simples e rápida

1. Date data = new Date();  
   2.   
   3. ArrayList lista = new ArrayList();  
   4. lista.add("teste1");  
   5. lista.add("teste2");  
   6. lista.add(data);  
   7. lista.add("teste3");  
   8.   
   9. for(int i=0; i<lista.size(); i++){  
  10.     if( lista.get(i) instanceof Date ) {
  13.         JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista, há uma data.");  
  14.     }else {  
  15.         JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  NÃO há uma data.");  
  16.     }  
  17. }
F
Date data = new Date();

ArrayList lista = new ArrayList();
lista.add("teste1");
lista.add("teste2");
lista.add(data);
lista.add("teste3");

for(int i=0; i<lista.size(); i++){
    if( lista.get(i) instanceof java.util.Date) {/* Aqui é minha dúvida:
             gostaria de fazer a seguinte verificação: se o tipo de dado
             nesta posição da lista for um Date então ele realizará uma determinada tarefa*/
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  uma data.");
    }else if(lista.get(i) instanceof java.lang.String){
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,   um texto.");
    }else{
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  Não  uma data.");
    }
}

assustado:
Olá, pessoal! Tudo bem?

Estou com uma dúvida em um ArrayList que fiz aqui. Eu gostaria de saber qual é o tipo de dado contido em uma determinada posição da lista. É que não sei como ficaria a comparação. Aí vai o que fiz:

Date data = new Date();

ArrayList lista = new ArrayList();
lista.add("teste1");
lista.add("teste2");
lista.add(data);
lista.add("teste3");

for(int i=0; i<lista.size(); i++){
    if( lista.get(i) == ????? ) {/* Aqui é minha dúvida:
             gostaria de fazer a seguinte verificação: se o tipo de dado
             nesta posição da lista for um Date então ele realizará uma determinada tarefa*/
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  uma data.");
    }else {
        JOptionPane.showMessageDialog(null, "Na posição "+i+" da lista,  NÃO  uma data.");
    }
}

Também gostaria de saber se este código não está do tipo “xaxixo” :lol: , ou seja, se os senhores e/ou senhoritas aconselham uma outra forma de fazê-lo.

Desde já agradeço. Bom fim de tarde a todos. :D

assustado

Thingol, senhor de Doriath! Obrigado pela resposta. Obrigado também clone_zealot.
Não havia feito uso, ainda, dessa palavra-chave. Agora a conheço!

E é verdade, esqueci-me das casadas :stuck_out_tongue: , sorry.

Até mais.

B

assustado:

Também gostaria de saber se este código não está do tipo “xaxixo” :lol: , ou seja, se os senhores e/ou senhoritas aconselham uma outra forma de fazê-lo.

O conselho é não misturar dados. Coisas ruins podem acontecer, como compilações quebrarem, programas não rodarem, exceções pipocarem, objetos começarem a desaparecer, gritos estridentes sendo ouvidos, sindrome de mania de perseguição, os portões para o inferno serem abertos… Coisas bem sinistras.

assustado

Bruno Laturner:
assustado:

Também gostaria de saber se este código não está do tipo “xaxixo” :lol: , ou seja, se os senhores e/ou senhoritas aconselham uma outra forma de fazê-lo.

O conselho é não misturar dados. Coisas ruins podem acontecer, como compilações quebrarem, programas não rodarem, exceções pipocarem, objetos começarem a desaparecer, gritos estridentes sendo ouvidos, sindrome de mania de perseguição, os portões para o inferno serem abertos… Coisas bem sinistras.

:lol: auheheeauhaeuheauh

É, pelo jeito o mix de dados pode causar o apocalipse, o fim dos tempos, o Armageddon, o Ragnarok!

Entendi o recado.

Obrigado a todos que responderam.

Criado 18 de agosto de 2009
Ultima resposta 18 de ago. de 2009
Respostas 6
Participantes 5