Oi, Claudemar! Tudo bem?
Para resolvermos o problema precisamos fazer algumas pequenas alterações na classe RandomArray
, deixando-a da seguinte forma:
import java.util.Random;
public class RandomArray {
private int start;
private int size;
private int end;
private int[] array;
// Define o tamanho do array
public void setSize(int size) {
this.size = size;
}
// Define o início do intervalo
public void setStart(int start) {
this.start = start;
}
// Define o final do intervalo
public void setEnd(int end) {
this.end = end;
}
public void computeArray() {
Random rd = new Random();
array = new int[size];
for (int i = start; i < size; i++) {
// Gera números aleatórios dentro do intervalo [start, end]
array[i] = rd.nextInt(end - start + 1) + start;
}
}
// Retorna o array gerado
public int[] getArray() {
return array;
}
}
Note que definimos uma fórmula para gerar números aleatórios dentro do intervalo desejado no nosso laço for
, que garantirá o nosso objetivo. Além de reposicionarmos Random rd = new Random();
e array = new int[size];
para dentro da classe RandomArray
a fim de criar o array de inteiros apenas quando o método computeArray()
for chamado.
Já na classe RandomArrayApp
precisamos nos atentar aos valores passados para os atributos, a fim de que os números sejam gerados corretamente, uma sugestão é deixar a nossa classe da seguinte forma:
import java.util.Random;
import java.util.Arrays;
public class RandomArrayApp {
public static void main(String[] args) {
// Variáveis
Random rd = new Random();
int size = rd.nextInt(100);
int start = rd.nextInt(10);
int end = rd.nextInt(1000);
int[] ans;
// Cria uma instância da classe RandomArray
RandomArray ra = new RandomArray();
ra.setSize(size);
ra.setStart(start);
ra.setEnd(end);
// Gera o array
ra.computeArray();
// Obtém o array gerado e imprime
ans = ra.getArray();
System.out.println(Arrays.toString(ans));
}
}
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓