2011-12-09 6 views
-1

私はPlacesのリストを持っています。各Placeには、それにリンクされている他のPlace'sのArrayListがあります。ArrayListのすべての要素が最後に追加されますか?

Placeが作成されると、placesというArrayListが格納されます。このArrayListのは、そうのように生成される...

public ArrayList<Place> getPlaces(){ 
` for(Place p : link.getPlaces()){ 
     places.add(new Place("Value1","Value2"); 
    } 
    return places; 
} 

はしかし、placesの値は常に作成された最後の要素であると考えられます。私はplaceのコンストラクタをチェックしましたが、作成されている場所は異なりますが、ArrayListに返される値は異なります。なぜこれが起こっていますか?

それは私が最初の方法では

ArrayList<Place> places = p.getPlaces(); //Where p is a place. 
for(Place p : places){ 
    System.out.println(p.toString()); 
} 
+3

問題を示す短くて完全なプログラムを表示してください。例えば、あなたの最初のコードスニペットでは、 'places'はどこに宣言されていますか? –

+3

このコードはコンパイルされません。また、 'getPlaces()'を呼び出すたびに新しい 'ArrayList'を作成していません。問題を実際に示すコードを投稿してください。 –

+3

投稿する[SSCCE](http://sscce.org/) – nebula

答えて

0

...このようなもので場所を印刷し、別のクラスからこのコードを呼んでいるのに役立ちます場合は、すべての場所のオブジェクトが同じでも、彼ら考えになります異なるオブジェクトです。

0

私はこの問題を自分で解決できました。私はカスタムオブジェクトの一部をソフトコピーしていましたが、残りの部分をハードコピーすると、ArrayListが上書きされていると思うようになりました。

関連する問題