2012-09-08 109 views
1

我寫了下面的代碼行,似乎一切正常,但是當我看到結果它不正確。Java,如何將對象添加到LinkedList?

在這裏,我定義了一個LinkedList並添加了一個對象。

private LinkedList<KategoriRecipeList> createListObjects() { 

     LinkedList<KategoriRecipeList> list = new LinkedList<KategoriRecipeList>(); 
     KategoriRecipeList kategori = new KategoriRecipeList(); 

     for(int i=0; i<resepi.getResepiId().size(); i++) { 
      kategori.setKategoriName(kategoriName); 
      kategori.setResepiId(resepi.getResepiId().get(i)); 
      kategori.setResepiName(resepi.getResepiName().get(i).trim().replaceAll("'", "")); 
      kategori.setImgLogoUri(resepi.getResepiImageURL().get(i)); 
      kategori.setImgMoreUri(bitmapUrls.get(i)); 

      Log.i("WWWWWWW", "Recipe '" + resepi.getResepiName().get(i) + "' added to list"); 

      list.add(kategori); 
     } 

     return list; 
    } 

當我看到日誌文件中的結果是這樣的:

09-09 03:05:29.272: I/WWWWWWW(1250): Recipe '"Chicken Cordon Bleu"' added to list 

09-09 03:05:29.272: I/WWWWWWW(1250): Recipe '"Sat-Bag"' added to list 

09-09 03:05:29.272: I/WWWWWWW(1250): Recipe 'Ayam Adobo ' added to list 

09-09 03:05:29.272: I/WWWWWWW(1250): Recipe 'Ayam Ber’Crumble’ & ‘Fennel’ direneh Air Roselle' added to list 

09-09 03:05:29.272: I/WWWWWWW(1250): Recipe 'Ayam Dua Cara' added to list 

我有調用上述方法的另一種方法:

private void storeListIntoDatabase() { 
     Log.i(TAG, "Try to insert data into database."); 

     LinkedList<KategoriRecipeList> listOfObjects = createListObjects(); 
     if(listOfObjects == null || listOfObjects.size() <= 0) 
      return; 

     for(int i=0; i<listOfObjects.size(); i++) 
      Log.i("KKKKKKKK", "Recipe '" + listOfObjects.get(i).getResepiName() + "' added to list"); 
    } 

結果在日誌文件是這樣的:

09-09 03:05:29.297: I/KKKKKKKK(1250): Recipe 'Tongkeng Ayam Goreng dan Nasi Kari Leher Ayam' added to list 

09-09 03:05:29.297: I/KKKKKKKK(1250): Recipe 'Tongkeng Ayam Goreng dan Nasi Kari Leher Ayam' added to list 

09-09 03:05:29.297: I/KKKKKKKK(1250): Recipe 'Tongkeng Ayam Goreng dan Nasi Kari Leher Ayam' added to list 

09-09 03:05:29.297: I/KKKKKKKK(1250): Recipe 'Tongkeng Ayam Goreng dan Nasi Kari Leher Ayam' added to list 

09-09 03:05:29.297: I/KKKKKKKK(1250): Recipe 'Tongkeng Ayam Goreng dan Nasi Kari Leher Ayam' added to list 

正如你可以看到結果ar不同但我期望的結果應該是相同的。我的問題在哪裏?謝謝

+0

是不是已經結果一樣嗎? – quantum

回答

3

此線

KategoriRecipeList =駕駛員學校新KategoriRecipeList();

需要在裏面for循環 你必須創建一個新的對象,每次

3

您需要在每個循環上創建新的實例,否則將更新相同的實例。列表維護對象的引用,它們不包含對象的副本。

for(int i=0; i<resepi.getResepiId().size(); i++) { 
    KategoriRecipeList kategori = new KategoriRecipeList(); 
    kategori.setKategoriName(kategoriName); 
    kategori.setResepiId(resepi.getResepiId().get(i)); 
    .... 
}