Olá pessoal, estou com dúvida no seguinte, como faço para criar um array de valores inteiros com tamanho dinâmico entre 100 e 200 e popular com números aleatórios entre 0 e 100.
Abaixo segue o que eu já fiz, mas, ainda tenho muitas dúvidas de como fazer. Minha principal dúvida é como faço para criar apenas um array que os números estejam ente 100 e 200.
Obrigado pela ajuda…
import java.util.ArrayList;
import java.util.Random;
public class teste {
public static void main(String... args) {
int[] array = new int[100];
for (int i = 0; i < 100; i++) {
int[] numeros = new int[new Random().nextInt(100)];
System.out.println("Tamanho array: " + numeros.length);
}
}
}
Valeu Ruutmann mas eu já estava dar uma lida, o que esta difícil para mim mesmo é como faço o array começar de 100 e vai até 200, precisaria criar um if?
Digaoneves e aí, então nesse caso tudo bem, eu consegui fazer mas, a principal dúvida é, de como faço o array entre 2 números isso sem começar do zero, tal como disse
para o Ruttman,
quer iterar o array iniciando no índice 100 e percorrer 100 índices? É só fazer um for normal.for(int i=100; i<200 ; i++){
System.out.println(arr[i]);
}
[quote=haricsousa]Valeu Ruutmann mas eu já estava dar uma lida, o que esta difícil para mim mesmo é como faço o array começar de 100 e vai até 200, precisaria criar um if?
Valeu.[/quote]
Cara, explica melhor o que você pretende fazer.
Que assim, array sempre tem tamanho fixo. Então pra começar de 100 e ir incrementando até 200 você teria que a cada iteração cria um novo array com uma posição a mais que o anterior e trasferir os valores de um pra outro, adicionando o ultimo valor na posição a mais.
List<SuaClasse> lista = new ArrayList<SuaClasse>();
//seu codigo
if(lista.size() < 201) {
lista.add(objeto);
}
else {
//retorna uma mensagem dizendo que não pode adicionar mais nada
}
É bem isso que o digaoneves fez, nesse caso eu vou puder fazer assim certo?
import java.util.ArrayList;
import java.util.Random;
public class teste {
public static void main(String... args) {
int[]array = new int[100];
for (int i > 99; i < 201; i++) {
//Vai gerar números aleatórios de 0 a 100
int[] numeros = new int[new Random().nextInt(100)];
System.out.println("Numeros aleatorios: " + numeros.length);
}
}
}
Bem acho que seria isso, alguém pode me dizer se dessa forma esta correto ou eu preciso criar mesmo uma ArrayList?
Aí digaoneves é isso que ele esta a pedir, da uma olhada na pergunta dele, só não sei se a implementação esta certa. Nesse caso o Array não esta a definir o tamanho de 100 elementos? E se eu usasse dessa forma;
E como eu crio esse Array definindo esse intervalo de valores (de 100 a 200), seria como esse que eu fiz aí? Desculpa aí pelas perguntas
mas é que ainda estou muito cru em programação.
Você quer que o tamanho do array seja entre 100 e 200?int[] array = new int[153];Ou que dado um array, ele seja preenchido com valores entre 100 e 200?int[]array = new int[100];
array[0] = 101
array[1] = 123;
array[2] = 190;
.
.
.
digaoneves é isso aí, o que vai acontecer é, criar um array com elementos entre 100 a 200 que vai ter o limite de 100, e nesse intervalo de 100 a 200 ele gere números aleatórios, no caso para fazer números aleatórios eu já fiz acho que esta certo.
//Vai gerar os números aleatórios.
int[] numeros = new int[new Random().nextInt(100)];
O que esta faltar agora é como acertar esse mecanismo do 100 a 200 ali em cima eu fiz consoante as ideias postadas aqui só que tu questionaste o porquê o uso do array já que ele não estava sendo usado.
Acho que eu entendi o que o autor do tópico quer. Acho que ele quer um array que comece na posição 100 e tenha 100 posições, de forma a array[0]… array[99] não sejam válidos, mas apenas array[100] a array[199].
Se for isso mesmo, acho que não tem como, mas dá pra dar um “jeitinho”. Você poderia encapsular um array dentro de uma classe e controlar o índice dele.
Você pode implementar um método add(int indice, int valor), por exemplo, de forma que o usuário pode chamar add(110, 1), ou seja, adicionando o valor 1 à posição 110 e, por trás dos panos, você pode pegar seu array encapsulado e fazer: array[indice - 100] = 1. Dessa forma, o usuário tem a impressão de estar adicionando na posição 110, mas você adiciona na 10, já que o array nativo sempre começa com índice 0.
Outra forma, mais fácil, mas mais burra, é fazer um array de 200 posições, mas encapsulá-lo de forma que o usuário só possa acessar as 100 primeiras (com um if, por exemplo). O ruim dessa estratégia, é que 100 vagas do array serão desperdiçadas.