Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

For com tipos distintos no ArrayList

Dado o seguinte código:

ArrayList coisas = new ArrayList();
coisas.add("Palavra");
coisas.add(123);
coisas.add(cc1);

for (int item : coisas) {
    System.out.println(item);
}

Sei que Array coisas está armazenandos String, int e objeto. Mas por que não consigo fazer um for para captar somente o que for int dentro do array coisas. Existe alguma forma de captar somente int, ou somente String e assim por diante?

1 resposta
solução!

Olá, Mickael! Tudo bem?

Você não consegue usar o tipo int na própria declaração do for. Isso porque é como se, por baixo dos panos, tivéssemos declarado um Arraylist de Object. Uma forma de filtrar somente inteiros, por exemplo, seria usar o código:

for (Object item : coisas) {
            if(item.getClass().getSimpleName().equals("Integer"))
                System.out.println(item);
}

Porém, não acredito que essa seja uma alternativa muito produtiva. Se quisesse lidar só com inteiros, por exemplo, seria melhor criar um Arraylist de inteiros, pois a intenção de criar um array genérico é justamente aproveitar a generalidade dele, e não tentar "forçar" uma generalidade.

Espero ter ajudado, abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!