Pessoal alguém pode me explicar o que significa isso?
Busquei um código de list na internet, mas esse código não entendi. basicamente crio um list banco e tenho uma classe dados.
List<banco> bancos = (List) xStream.fromXML(input);
input.close();
System.out.println( "#### LISTA DE USUÁRIOS #### ");
for (banco dados : banco) //Essa sintaxe que gostaria de entender....
procurei sobre o : em tópicos mas não ficou claro, não consegui entender.
Acho que te mostrando um pouco em outras linguagens você consiga chegar a uma conclusão:
js (javascript):
for (var dados in banco)...
Python:
for dados in banco:...
PHP:
foreach (banco as dados)...
Basicamente os dois pontos no for do java significa um in ou talvez um “para cada item da lista”, etc, vai da sua interpretação, o nome técnico dele é foreach… espero ter ajudado…
Bom… Classes devem começar com a primeira letra maiúscula, assim fica mais fácil o entendimento
Este for é conhecido como forEach.
A assinatura dele seria assim:
for(ClasseDaLista objeto : listaQueVaiSerIterada)
o primeirobanco do seu for é o tipo da sua lista, o dados é o objeto que vai referenciar cada posição da lista e o segundobanco é a própria lista, mas no seu código a lista se chama bancos e não banco
Esse operador FOR é comumente chamado de FOREACH e as vezes em alguns casos ele é chamado de for aprimorado, ele é muito usado para percorrer ArrayList, a sintax dele é bem simples, você só precisa informa a classe e definir uma variável em seguida : (dois pontos), então, informe o ArrayList que irá ser percorrido.
Observe o exemplo abaixo.
import java.util.ArrayList;
public class Principal {
public static void main(String[] args) {
ArrayList<Integer> numeros = new ArrayList<Integer>();
numeros.add(1);
numeros.add(2);
numeros.add(3);
numeros.add(4);
numeros.add(5);
for (Integer var : numeros) {
System.out.println(var);
}
}
}
No que se diz a respeito das vantagens que ele tem sobre o for comum quando se trata de ArrayList é que você não precisa informar o tamanho do array, condiçoes e etc, pois ele automaticamente vai percorrer o array por completo, o que te dá uma certa vantagem, você escreve menos e obtém o o mesmo resultado.
Obs. Um maneira de gravar e entender o que ele faz e como faz é: (Observe o comentario.)
//PERCORRA CADA ELEMENTO par DO TIPO int DENTRO DE pares.
int[] pares = {2, 4, 6, 8, 10, 12};
for(int par : pares){
System.out.print(par);
}
Galera realmente não consegui, acredito que seja básico do básico, mas… se alguém puder me ajudar. A respeito do : e do for entendi o que esta pegando é que preciso dos dados para outra classe e pegar o valor de cada objeto lá. Não sei como fazer. vou postar o que tenho.
public static Object lerXMLListaUsuario(String ArquivoCaminho)
{
Object[] o = new Object[9];
try
{
XStream xStream = new XStream(new DomDriver());
xStream.alias("usuarios", ArrayList.class);
xStream.processAnnotations(Banco.class);
File file = new File(ArquivoCaminho);
BufferedReader input = new BufferedReader(new FileReader(file));
List<Banco> banco = (List) xStream.fromXML(input);
input.close();
System.out.println( "#### LISTA DE USUÁRIOS #### ");
for (Banco dados : banco)
{
o[0] = dados.getDriver();
o[1] = dados.getUrl();
o[2] = dados.getUsuario();
o[3] = dados.getDriver1();
o[4] = dados.getUrl1();
o[5] = dados.getUsuario1();
o[6] = dados.getDriver2();
o[7] = dados.getUrl2();
o[8] = dados.getUsuario2();
}
for(int i = 0;i < o.length;i++){
System.out.println(o[i]);//os valores imprimi normal na saída, mas preciso desses valores em outra classe
}
} catch (IOException ex)
{
System.out.println(ex.getMessage());
}
//System.out.println(o);
return o;
}