Armazenar ImagemIcon em uma variavel vetor[]

Boa tarde Pessoa,

Estou com uma dúvida, a possibilidade de armazenar ImagemIcon em um vetor?

Tenho 20.000 imagens para ser processada, queria de alguma forma carregar essas imagens em um vetor, para depois ele setar em uma Jlabel as imagens.

for(int i = 0;i<=20000;i++){

File f = new File(“Project/” + lblNewLabel_2.getText() + “/img/”
+ comboBox_2.getItemAt(i));
bufferedImage = ImageIO.read(f);
ii = new ImageIcon(bufferedImage);

ii4[i] = new ImageIcon(ii.getImage().getScaledInstance(50,
50, Image.SCALE_SMOOTH));
}

Quando realizo isso ocorre o erro de memoria, não posso utilizar banco de dados

Exception in thread “Thread-4” java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferByte.(Unknown Source)
at java.awt.image.ComponentSampleModel.createDataBuffer(Unknown Source)

Esse erro indica que o processamento está consumindo muita memória.
Seria o caso de repensar a possibilidade de um ajuste mais fino no código

Sim, o problema é que a imagem é muito grande a resolução afetando no desempenho do sistema,
chega a demorar quase 3 segundos cada imagem, só queria uma forma de ler rapido essa imagem e colocar na jlabel

Qual o tamanho médio (em MB) de cada imagem?

Você está tentando carregar todas de uma vez pra exibir em sequência no JLabel? Por que não carrega sob demanda, mantendo apenas 1 imagem carregada a cada momento?

Outra opção é gerar thumbnails (miniaturas) dessas imagens e usá-los para exibição, exibindo a imagem de alta resolução somente quando necessário.

Abraço.

Não estou no momento no trabalho mas lembro que tinha 400 foi é uma resolução maior que 2000, eu carrego um por vez só que para 10.000 imagens se carregar 3 segundos ou mais irá demorar muito, posso dar uma olhada nas miniaturas para ver como é

Encontrei uma maneira para quem precisar está aqui

fo = new File(“Diretorio\teste.png”);

String xx = “<img src=“file:”+fo.toString()+”" width=tamanho height=tamanho >";

label.setText(xx);