Estou tentando fazer uma matriz com List e não estou conseguindo na verdade buscar os elementos. Eu insiro, mas na hora de retornar a matriz que seria “a mais interna” ela nao retorna, podem identificar o que estou fazendo de errado? Segue o codigo exemplificado:
List<Double>Emp1=newArrayList<Double>();List<Double>Emp2=newArrayList<Double>();Emp1.add(12.4);Emp1.add(16.2);Emp2.add(10.6);Emp2.add(22.2);List<List>empresas=newArrayList<List>();empresas.add(Emp1);empresas.add(Emp2);Iterator<List>it=empresas.iterator();while(it.hasNext()){System.out.println("Empresa:"+it.next());/* exibiu: Empresa: [12.4,16.2] Empresa: [10.6,22.2] Agora que vem o problema(rs), eu tento resgatar cada numero individualmente e nao consigo, tentei fazendo dentro do loop, criando outro loop: */Iterator<List>itD=it.next().iterator();while(itD.hasNext()){System.out.println(itD.next());}}
Você retirou a chamada dupla a it.next() que havia nas linhas:
System.out.println("Empresa: "+it.next());
E:
Iterator<List> itD = it.next().iterator();
do seu código?
Observe que cada chamada ao next() irá avançar em um a posição do iterador.
Sem falar que testei o código ali no meu PC e funcionou perfeitamente.
S
scrat
ViniGodoy
Se você vai usar matrizes matemáticas, aí seria o caso de usar uma matriz primitiva de doubles ou, se são poucos valores, uma matriz dispersa:
Se é como no exemplo que você postou, o ideal seria usar classes.
Ter uma classe Empresa, que tem uma lista dentro. E em seguida ter uma classe que contém a lista de empresas.
É muito comum trabalharmos classes com listas que contém outras classes com listas dentro.
S
scrat
Obrigado ViniGodoy,
Eu já tinha colocado em Classes, só postei aqui sem classes para facilitar e focar no erro!
Agora, matrizes primitivas eu não fiz, vou fazer e testar a performance em ambos para saber o que é melhor!
Referente ao link que enviou, é um link que fala de matrizes de map dentro de map, é está que está se referindo?
ViniGodoy
Sim, esse Map dentro de Map simula uma matriz gigante (de 2 bilhões por 2 bilhões de elementos).
Porém, ele só é efetivo caso muitos valores da sua matriz sejam duplicados. Por isso chamamos de matriz dispersa.
Um exemplo de aplicação disso é o caso do tópico, games. Uma das formas de representar um cenário de um jogo é através de uma matriz de tiles. Cada tile nada mais é do que um quadradinho com um elemento do cenário (grama, parede, água, chão, etc). Assim, com uma matriz, você pode desenhar toda uma região. Acontece que em um mapa grande, boa parte desses quadradinhos serão grama, ou algum outro terreno padrão. Por isso, o map de map acaba atuando como uma matriz de tamanho virtualmente infinito, e gastando espaço somente nos tiles onde não houver grama.
S
scrat
Obrigado pelas dicas ViniGodoy, me ajudou bastante!
Vou dar uma estudada no Map. Como eu estou começando agora, ainda estou apanhando ao escolher a melhor forma de fazer as coisas! rs
As matrizes na verdade serão de números aleatórios, então não tenho como saber se serão duplicados ou não, pode acontecer e pode não acontecer…