Tengo una matriz: {rojo, azul, verde}. Quiero generar otra matriz que tenga contenido aleatorio, por ejemplo: {red,red,blue,green,blue} . Quiero usar una longitud variable de la matriz aleatoria.
puedes intentar algo como esto:
import java.util.ArrayList; import java.util.Random; public class RandomArrayTest { public static void main(String[] args) { System.out.println(RandomArrayTest.randomArrayOfColors(10)); // for example } public static ArrayList<String> randomArrayOfColors(int lenOfArray){ String[] colors = {"RED", "GREEN", "BLUE"}; ArrayList<String> rndArray = new ArrayList<String>(); Random rnd = new Random(); for(int i=0; i<lenOfArray; i++){ // populate the array rndArray.add(colors[rnd.nextInt(colors.length)]); } return rndArray; } }La salida por ejemplo:
[GREEN, GREEN, BLUE, GREEN, RED, BLUE, GREEN, RED, RED, BLUE]Aquí hay un ejemplo de cómo puede usar random con array :
public static void main(String[] args) { String colors[] = {"red", "blue", "green"};//your array of colors int n = 10;//number of element you want to make in your new array String random[] = new String[n]; for(int i = 0; i< n; i++){ //add values with random values of the colors array random[i] = colors[new Random().nextInt(colors.length)]; } System.out.println(Arrays.toString(random));//print the random array }Producción
[red, green, green, green, green, green, red, blue, red, red]Pseudocódigo:
colours <- {red, blue, green} length <- random (0 to maxLength) repeat length times colour <- pick random from colours append colour to outputArray end repeat return outputArray¿Fue realmente tan difícil?