Hello, gostaria de melhorar o codigo abaixo, substituindo a divisao “i/5” por uma solução computacional, pois divisao é um calculo muito complexo.
Quá quá quá.
Se você está convertendo um int para uma String (que é o que você fez ao escrever “” + index[i] - isso é uma conversão implícita de int para String) está usando um monte de divisões e cálculos de resto por 10 e nem está percebendo que está fazendo o tal do “cálculo muito complexo”. Em muitos processadores fazer uma divisão acaba sendo mais rápido que acessar uma posição de memória em um array, se esta não estiver no cache do processador.
Não se preocupe com o tempo levado por uma divisão no processador; esse tempo é irrelevante nesse caso.
No seu caso, você pode fazer um “for dentro do outro”.
JhowTroMundo
Cara, só pra informação mesmo:
O método .println da classe PrintStream é sobrescrito. Cada um recebe um tipo primitivo diferente, bem como array, a propria String ou um Object. Cada um trata o tipo recebido de acordo.
Não precisa explicitar a conversão pra String.
lina
Oi,
/**Alinha um <b>String</b> de acordo com os argumentos..*/publicstaticfinalStringAlign(finalStringas_texto,finalintan_tamanho_alinhamento,finalStringas_filtro){StringBufferresultado=null;// Se string origem fornecida ...if(as_texto!=null){// Se tamanho final válido ...if(an_tamanho_alinhamento>=0){// Diferença de tamanho entre origem e destino ...intln_diference=an_tamanho_alinhamento-as_texto.length();// Aloca a área necessária ...resultado=newStringBuffer(an_tamanho_alinhamento);resultado=newStringBuffer(as_texto.substring(ln_diference>=0?0:as_texto.length()-an_tamanho_alinhamento,as_texto.length()));while(resultado.length()<an_tamanho_alinhamento){resultado.insert(0,as_filtro);}}}returnresultado.toString();}publicstaticvoidmain(String[]args){for(inti=0;i<4;i++){System.out.println(Align(""+i,5,""+i));}}
Tchauzin!
dj11
simplesmente eu quero outra forma de fazer isso:
int[] index = new int[20];
for(int i=0;i<20;i++)
index[i]=i/5;
nao quero fazer essas divisões e ponto final…
quero uma forma de fazer um laço for dentro do outro é mais elegante…
E é verdade o metodo System.out.println(""+index[i]) nao converteu nada internamente o array continua de inteiros. Simplesmente ele exibe no console a saida!
dj11
lina:
Oi,
/**Alinha um <b>String</b> de acordo com os argumentos..*/publicstaticfinalStringAlign(finalStringas_texto,finalintan_tamanho_alinhamento,finalStringas_filtro){StringBufferresultado=null;// Se string origem fornecida ...if(as_texto!=null){// Se tamanho final válido ...if(an_tamanho_alinhamento>=0){// Diferença de tamanho entre origem e destino ...intln_diference=an_tamanho_alinhamento-as_texto.length();// Aloca a área necessária ...resultado=newStringBuffer(an_tamanho_alinhamento);resultado=newStringBuffer(as_texto.substring(ln_diference>=0?0:as_texto.length()-an_tamanho_alinhamento,as_texto.length()));while(resultado.length()<an_tamanho_alinhamento){resultado.insert(0,as_filtro);}}}returnresultado.toString();}publicstaticvoidmain(String[]args){for(inti=0;i<4;i++){System.out.println(Align(""+i,5,""+i));}}
Tchauzin!
:shock: acho q vc nao me entendeu direito eu simplesmente quero armazenar num array os 20 inteiros:
0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3. usando apenas loços “for” blz!