Duvida neste exercicio

Eu sou iniciante e não to conseguindo resolver esse problema
Faça um programa que leia 500 valores e no final, informe quantos eram maiores que 100.

quando ponho pra rodar o código nada acontece

import java.util.Random;

import java.util.Arrays;

import javax.swing.JOptionPane;

public class Exercicio3 {

public static void main(String[] args){

int i;

int[] vetor = new int[500];

int numero = 0;

int [] maior = new int[500];

for(i =0;i<500;i++){
Random sorteio = new Random();
vetor = sorteio.nextInt(500);

}

while(numero < vetor.length){
numero++;
if(vetor > 100) {

maior = vetor;
}

}
JOptionPane.showMessageDialog(null, Arrays.toString(maior));

}
}

Seu código esta errado em algum ponto.

Algumas coisas que reparei.

vetor = sorteio.nextInt(500);
vetor[i] = sorteio.nextInt(500);
while(numero < vetor.length){ 
numero++;
// Deveria ser comparação com a posição do vetor e não com uma variável que esta sendo incrementada
if(vetor > 100)
if(vetor[j] > 100)

Tenta mudar sua lógica.

Vc precisa guardar os dados em alguma estrutura de dados ? Vetor ?

Se não precisar armazenar, basta ler quinhentos numero e aí sim guarda-los.

Precisa ser vetor estático de 500 posições?

Se não, use alguma estrutura do próprio java.

Qualquer coisa volte a perguntar.


int numero[] = new int[500];  
int maior = 0;  
  
  
for (int i = 0; i < numero.length; i++) {  
    Random random = new Random();  
    numero<i> = random.nextInt(500);  
  
    if (numero<i> > 100) {  
        maior++;  
        System.out.println(numero<i> + "-" +i);  
    }  
}  
  
System.out.println("Quantidade de números maiores: " +maior);  

Acho que dá pra entender uasahusuasu. Fiz isso quase dormindo aqui, qualquer equivoco, me corrijam. PS: são 03:28 da manhã AUSHUAS

// Como vc está começando vamos usar o métod Jack
	public static void main(String[] args){ 
		// Evite comentários no seu código, pra isso dê nomes que auto expliquem oque elas fazem ou pra que elas servem
		// Veja no meu exemplo que as variáveis se explicam por si só
		
		// Essa variável não é necessária aqui, ele pode ser declarada junto do for como vc pode ver na correção que fiz
		int i; 

		int[] vetor = new int[500]; 

		int numero = 0; 
		
		// Pelo que entendi do seu problema vc não precisa armazenar os números que são maiores que 500, só dizer quantos são
		// Então essa variável é desnecessaria
		int [] maior = new int[500]; 

		// só declare dentro da iteração oque vc realmente vai usar, vc está declarando 500x a variável sorteio, quando só pracisa de 1
		for(i =0;i<500;i++){ 
		Random sorteio = new Random(); 
		// use alguma IDE, eclipse ou netbeans, elas vão evitar os erros de compilação
		// aqui vc está tentando atribuir um int há um array, erro de compilação, o correto seria vetor[i] = sorteio.nextInt(500);
		// esta função de Random retorna um pseudorandom entre 0 (inclusive) e o número passado (exclusive) então aqui vc nunca veria o 500, pra isso
		// vc deve passar o número limite que quer +1, neste caso 501
		vetor = sorteio.nextInt(500); 

		} 
		
		while(numero < vetor.length){ 
		numero++; 
		// Erro de compilação, vetores não podem ser usados com o comparador >
		if(vetor > 100) { 

		maior = vetor; 
		} 


		}
		// ????
		JOptionPane.showMessageDialog(null, Arrays.toString(maior)); 
		
		/**
		 * Se vc quer mesmo aprender a programar estude as respostas que te foram dadas, não apenas copie
		 * Indente seu código, isso facilita o entendimento, tanto o seu quanto o de outros
		 * Denovo, use uma IDE, ela tem várias funcionalidades que aumentam a produtividade.
		 */

	}

Segue uma possível correçao.

public static void main(String[] args) {
		Random sorteio = new Random();

		int[] numerosIniciais = new int[500];

		int quantosSaoMaioresQue100 = 0;

		for (int i = 0; i < numerosIniciais.length; i++) {
			numerosIniciais[i] = sorteio.nextInt(501);
		}
		
		for (int numero : numerosIniciais) {
			if(numero > 100)
				quantosSaoMaioresQue100++;
		}

		System.out.println("Temos " + quantosSaoMaioresQue100 + " maiores que 100 nesta lista");

	}

Finalmente, vc deve separar seu código em métodos que fazem apenas uma coisa, veja.
Assim eu posso reusá-lo sem reescrever o código

	public static void main(String[] args) {
		int[] numerosIniciais = inicializaListaComNumerosRandomicos(500);

		int quantosSaoMaioresQue100 = contaQuantosNumerosSaoMaioresQueOLimite(numerosIniciais, 100);
		int quantosSaoMaioresQue200 = contaQuantosNumerosSaoMaioresQueOLimite(numerosIniciais, 200);

		System.out.println("Temos " + quantosSaoMaioresQue100 + " maiores que 100 ");
		System.out.print(" e " + quantosSaoMaioresQue200 + " maiores que 200 nesta lista");
	}

	private static int contaQuantosNumerosSaoMaioresQueOLimite(int[] numeros, int limite) {
		int contagem = 0;
		for (int numero : numeros) {
			if(numero > limite)
				contagem++;
		}
		return contagem;
	}

	private static int[] inicializaListaComNumerosRandomicos(int tamanhoDaLista) {
		Random sorteio = new Random();
		int[] lista = new int[tamanhoDaLista];
		
		for (int i = 0; i < lista.length; i++) {
			lista[i] = sorteio.nextInt(tamanhoDaLista + 1);
		}
		
		return lista;
	}