Quis fazer de um modo mais interativo, então deixei o usuario (eu no caso), escolher qual posição do vetor ele gostaria de acessar.
Ao meu ver, faltou uma verificação para o caso de tentar acessar uma posição não preennchida, que faria com if provavelmente.
package br.com.alura.aula02;
import java.util.ArrayList;
import java.util.Scanner;
public class Produto {
private String nome;
private double preco;
private int quantidade;
public Produto(String nome, double preco, int quantidade) {
super();
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
@Override
public String toString() {
return "Produto:" + nome + "\npreco: " + preco + "\nquantidade: " + quantidade;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<Produto> listaProdutos = new ArrayList<>();
int pos;
Produto produto1 = new Produto("Mamão",7.99,27);
Produto produto2 = new Produto("Iphone 15 pro max ultra",19000.99,200);
Produto produto3 = new Produto("Jiló",13.65,4000);
Produto produto4 = new Produto("Fósforo",2.59,1000);
listaProdutos.add(produto4);
listaProdutos.add(produto3);
listaProdutos.add(produto2);
listaProdutos.add(produto1);
System.out.println("Tamanho da lista:" + listaProdutos.size());
System.out.println("Digite qual posição da lista deseja acesar: ");
pos = scan.nextInt();
System.out.println("Elemento da posição: " + listaProdutos.get(pos).nome);
System.out.println(listaProdutos.get(pos).toString());
}
}