Pessoal estou com duvidas, não sei se ta correto a forma que estou utilizando o arraycopy.
Eu quero copiar os elementos da array de origem (totalDeCarros) apartir da posição que for fornercida por um usuario em um Scanner(idCarro). jogando no array de destino (carrosAlugados) na posição inicial 0.
parte do codigo abaixo.
case 3:
System.out.print("0 a "+(client.length-1)+", informe seu ID:");
idClient = sc.nextInt();
System.out.print(client[idClient].getNome()+" informe o codigo do carro de 0 a "+(totalDeCarros.length-1)+" que você deseja alugar: ");
idCarro = sc.nextInt();
System.arraycopy(totalDeCarros,idCarro,carrosAlugados,0,totalDeCarros.length);
break;
está dando erro no arraycopy e não sei se o jeito que coloquei ta certo ou não, acredito que não.
Estou iniciando na area…
Fiz dessa forma e estar dando erro, ao inves de passar um valor pra posicaoSelecionada eu estou jogando uma variavel que recebe um valor atraves de um Scanner e por que está dando erro?
Foi mal, estou começando na area e não conhecia os termos e tal. mas é esse ai
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at java.base/java.lang.System.arraycopy(Native Method) at com.company.Main.main(Main.java:112)
Acredito que por estar usando o System.arraycopy, deva ter lido como funciona.
Dei uma olhada rapido no link que foi passado acima, e esta facil entender.
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Os argumentos “src” e “dest” representam os vetores origem e destino, respectivamente. O argumento “srcPos” é a posição inicial no array origem. O argumento “destPos” é a posição inicial no array destino. Por fim, “length” é utilizado para especificarmos o número de elementos que serão copiados.
Aposto que se colocar o seu inicio (digitar) que quer no index >=10 não vai dar o erro …
Aconselho a criar seus próprios métodos agora que esta iniciando, ficará mais fácil entender e aperfeiçoar sua logica.