Java 在ArrayList中存储对象时,只能使用最后一个存储的对象
我有一个文件,上面有这样的输入:Java 在ArrayList中存储对象时,只能使用最后一个存储的对象,java,arrays,list,arraylist,file-io,Java,Arrays,List,Arraylist,File Io,我有一个文件,上面有这样的输入:零食名称价格,用一个标签隔开。 使用我编写的代码,我将所有内容存储在Obj产品的ArrayList中: public ArrayList<Product> listsnack = new ArrayList<>(); public Product readSnack() throws FileNotFoundException, IOException { BufferedReader in = new
零食名称价格
,用一个标签隔开。
使用我编写的代码,我将所有内容存储在Obj产品的ArrayList中:
public ArrayList<Product> listsnack = new ArrayList<>();
public Product readSnack() throws FileNotFoundException, IOException {
BufferedReader in = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = in.readLine()) != null) {
snackline = linea.split("\t");
String code =snackline[0];
String name = snackline[1];
String price = snackline[2];
Product p1 = new Product(snackline[0], snackline[1], snackline[2]);
listsnack.add(p1);
}
Product p1 = new Product(snackline[0], snackline[1], snackline[2]);
return p1;
}
现在,我想写一个方法,通过使用与产品代码和正确价格匹配的键盘输入,它显示“供货已正确完成”
我想打电话给一个新的:
Readfile f= new Readfile();
f.readSnack().code \\ Comparing this to System.in input
但是,当我在方法中使用它时,它只适用于ArrayList中的最后一个元素。
我做错了什么?
致以最诚挚的问候试着像这样构建您的功能。调用它后,您可以循环浏览产品并将其全部打印出来
public List<Product> readSnacks() throws FileNotFoundException, IOException {
List<Product> listsnack = new ArrayList<>();
BufferedReader in = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = in.readLine()) != null) {
snackline = linea.split("\t");
String code =snackline[0];
String name = snackline[1];
String price = snackline[2];
Product p1 = new Product(snackline[0], snackline[1], snackline[2]);
listsnack.add(p1);
}
return listsnack;
}
public List readsnakts()抛出FileNotFoundException,IOException{
List listnakp=new ArrayList();
BufferedReader in=新的BufferedReader(新文件读取器(“input.txt”);
弦线;
而((line=in.readLine())!=null){
snackline=linea.split(“\t”);
字符串代码=snackline[0];
字符串名称=snackline[1];
字符串价格=小吃线[2];
产品p1=新产品(snackline[0]、snackline[1]、snackline[2]);
添加(p1);
}
返回列表;
}
你可以这样称呼它:
List<Product> snacks = readSnacks();
List snakts=readsnakts();
从外观上看,您的readSnack
方法只返回最后一个snack(p1
)。也许你想返回列表
?@zron甚至不是这样,它创建了另一个新的产品
,与上一个产品
具有相同的信息,但是这个产品
实际上与列表中的最后一个产品
完全不同,KevinEsche得到了它,那么,我如何才能返回整个列表,而不仅仅是最后一个元素呢?非常感谢!现在我正在编写提供零食的方法,但是当我遇到一个新对象时,我只能写“readfile.listnakp.get(i)。*whatineed*”,但我需要所有的物品,而不仅仅是一个。例如,对于我需要的每一项价格部分。。。我应该为每个循环做一个测试吗?是的,每个循环
List<Product> snacks = readSnacks();