Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] AJUDA! Como retornar um array usando a biblioteca random

Boa tarde, galera..

Estou tentando desenvolver um trabalho que retorne um array de números aleatórios com base em 2 parâmetros:

onde o intervalo de números aleatórios deve começar, onde o intervalo de números aleatórios deve terminar.

Estou desenvolvendo o codigo mas ele esta retornando um array vazio.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

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 ✓

Muito obrigado Sarah, sua explicacao me ajudou muito!!!

Tenha uma otima semana.