i次のような入力を持つファイルがあります:SNACK NAME PRICE
、タブで区切ります。 私が書いたこのコードを使用して、私がobj製品のArrayListの中ですべてのものを格納します。ArrayListにオブジェクトを格納することができます。最後に格納されたもののみを使用します
Product{code=PATA1, name=rustica san carlo, price=0.4}
Product{code=PATA2, name=chipsters, price=0.35}
Product{code=KIND1, name=ovetto kinder, price=0.75}
:サイクルのために使用して印刷し、それはこの出力を(私はそれが正しいことだと思うこと)を生成しながら、
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内の最後の要素のために動作します。 何が間違っていますか? よろしくお願いします。
まあ、それのルックスで、あなたの 'readSnack'方法は、最後のおやつ(ループの後に' p1')を返します。おそらくあなたは 'リスト'を返すことを意味しましたか? – Zircon
@Zirconでも、最後の 'Product'と同じ情報を持つ別の新しい' Product'が作成されましたが、この 'Product'は' listsnack'リストの最後の 'Produkt'と完全に異なるインスタンスです。 – SomeJavaGuy
@KevinEscheそれで、最後の要素だけでなく、リスト全体にどのように戻っていくことができますか? –