Estou com um problema para implementar uma lógica, eu quero movimentar meus elementos uma posição para direita de dentro do meu array.
Esse é meu código.
É difícil de entender o que cada laço (for) está fazendo, recomendo que insra um comentário:
publicvoidtrocaPosicaoAlfabeto(){// adiciona na lista de 'a' - 'y'for(inti=0;i<alfabeto.length-1;i++){letras.add(alfabeto.charAt(i));}// adiciona 'z' no inicioletras.add(0,alfabeto.charAt(alfabeto.length-1));// copia a lista para a stringalfabeto="";for(inti=0;i<letras.size();i++){alfabeto+=letras.get(i);}System.out.println(alfabeto);
Outra codificação alternativa, considerando a diferencia de tempo de acordo com cada tipo de implementação na codificação a seguir.
importjava.util.Arrays;publicclassTeste{publicstaticvoidmain(String[]args){Stringtxt="123456789";intciclo=1000000;//extressando a codificação para encontrar, se livrar de um ArrayIndexOutOfBoundsExceptionchar[]vetor=txt.toCharArray();for(inti=0;i<10;i++){System.out.println("Diferença: "+String.format("%.2f",100-100f*teste(vetor,ciclo,true)/teste(vetor,ciclo,false))+"%\n");}}//verifica o tempo de processamento em nanoprivatestaticlongteste(char[]vetor,intciclo,booleangiro1){longtempoGiroVetor=-System.nanoTime();if(giro1){giroVetor(vetor,ciclo,true);}else{giroVetor2(vetor,ciclo,false);}tempoGiroVetor+=System.nanoTime();System.out.println(Arrays.toString(vetor)+" TempoGiro"+(giro1?1:2)+": "++tempoGiroVetor);returntempoGiroVetor;}//eficiência geralmente maior que o método giroVetor2privatestaticvoidgiroVetor(char[]vetor,intlen,booleangiroCanhoto){intlimite=vetor.length-1;charauxiliar;if(giroCanhoto){for(inti=0;i<len;i++){auxiliar=vetor[0];System.arraycopy(vetor,1,vetor,0,limite);vetor[limite]=auxiliar;}}else{for(inti=0;i<len;i++){auxiliar=vetor[limite];System.arraycopy(vetor,0,vetor,1,limite);vetor[0]=auxiliar;}}}//alternativo, com mais peso ciclomático e menos linhasprivatestaticvoidgiroVetor2(char[]vetor,intlen,booleangiroCanhoto){for(inti=0;i<len;i++){charauxiliar=vetor[giroCanhoto?0:vetor.length-1];System.arraycopy(vetor,giroCanhoto?1:0,vetor,giroCanhoto?0:1,vetor.length-1);vetor[giroCanhoto?vetor.length-1:0]=auxiliar;}}}