Tenho este código, que por exemplo, ao cadastrar dois produtos, ao tentar localizar pelo codigo de 1 a 100, ele retorna : “index out of bounds size:2 list:2”
public ArrayList<Produto> pesquisaCodigo(int codIni, int codFin) {
ArrayList<Produto> pesquisa = new ArrayList<Produto>();
for (int x = 0; x < listaProd.size(); x++) {
if ((listaProd.get(x).getCodigo() >= codIni)
&& (listaProd.get(x).getCodigo() <= codFin)) {
pesquisa.add(listaProd.get(x));
}
}
return pesquisa;
}
Talvez listaProd seja uma variável de instância da classe do manfred.
Se usar pesquisa.size(), a execução não entra no loop, pois a recem criada pesquisa não tem elementos (size é zero).
O código me parece certo; não quer postar a classe inteira?
Esta seria a Classe ( Sem comandos de cadastro etc )
[code]import java.util.ArrayList;
public class ListaProdutos {
private ArrayList listaProd = new ArrayList();
public ArrayList pesquisaCodigo(int codIni, int codFin) {
ArrayList pesquisa = new ArrayList();
for (int x = 0; x < listaProd.size(); x++) {
if ((listaProd.get(x).getCodigo() >= codIni)
&& (listaProd.get(x).getCodigo() <= codFin)) {
pesquisa.add(listaProd.get(x));
}
}
Este no programa que é inserido os valores
System.out.println("Defina o Codigo Inicial ");
int codIni = entrada.nextInt();
System.out.println("Defina o Codigo Final ");
int codFin = entrada.nextInt();
ArrayList<Produto> todosProd2 = listaProd.pesquisaCodigo(
codIni, codFin);[/code]
E a classe produto
[code]public class Produto {
private int codigo;
private String descricao;
private String fabricante;
private double preco;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
if (codigo > 0) {
this.codigo = codigo;
}
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getFabricante() {
return fabricante;
}
public void setFabricante(String fabricante) {
if (!"".equals(fabricante)) {
this.fabricante = fabricante;
}
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
if (preco > 0) {
this.preco = preco;
}
}
public String toString() {
String saida = "Código: " + this.getCodigo() + "\nDescrição: "
+ this.getDescricao() + "\nFabricante: " + this.getFabricante()
+ "\nPreço: " + this.getPreco();
return saida;
}
}
[quote=patrizio.cannoni]Talvez listaProd seja uma variável de instância da classe do manfred.
Se usar pesquisa.size(), a execução não entra no loop, pois a recem criada pesquisa não tem elementos (size é zero).
O código me parece certo; não quer postar a classe inteira?
[/quote]
Tem razão cara, não tinha pensado nisso.
O problema é que temos somente o trecho do código do cara, temos que esperar ele colocar a classe inteira mesmo.
Complementando o posto anterior: eu acho que, se há erro no código, o erro não está no trecho postado por você. Você já chegou a ver a linha na qual está dando o erro?