2014-10-04 68 views
-3

我想知道如何在自定義ArrayList中添加字符串值。Java:如何在自定義ArrayList中添加字符串值

我曾嘗試下面的代碼,但它給了我錯誤

ArrayList<MyCustom> aList = new ArrayList<MyCustom>(); 

aList.add("My Name"); 

,並試圖這也;

aList.addAll("My Name"); 

aList.add((MyCustom)"My Name"); 
+0

'String'不延長'MyCustom',讓你在的地方使用'String' 'MyCustom'。順便說一下,我很確定,'MyCustom'也不會將'String'擴展爲'String'。 – 2014-10-04 11:02:22

+0

@Dmitry Ginzburg對此有何其他選擇? – 2014-10-04 11:02:57

+1

這取決於你想達到什麼。例如,你可以使用'ArrayList '或者(如果只包含'String's),你應該使用'ArrayList ' – 2014-10-04 11:03:26

回答

0

假設你MyCustom類,並有物業說name

class MyCustom{ 
    String name; 
    public setName(String name){ 
     this.name=name; 
    } 
    ..... 
    } 

ArrayList<MyCustom> aList = new ArrayList<MyCustom>(); 
MyCustom myCustomObject=new MyCustom(); 
myCustomObject.setName("abc"); // here set the properties for your custom class object 
aList.add(myCustomObject); 
0

您已經創建了一個將包含MyCustom類型的對象,所以,除非你的對象擴展字符串,你不能添加字符串給它的列表。

如果您希望將包含字符串和MyCustom對象,所以你必須創建列表像這樣的列表:

List<Object> list = new ArrayList<Object>(); 
list.add(new MyCustom(...)); 
list.add("Some String"); 
+1

使用原始類型是不好的,如果不是爲了向後兼容,很可能會被Java禁止。使用'List '和'ArrayList '而不是'List'和'ArrayList' – 2014-10-04 11:08:42

+0

@KuluLimpa我意識到我忘記了當我輸入答案。謝謝。 – Hunsu 2014-10-04 19:12:16

0

正如前面提到的,你的「MyCustom」既不是孩子,也不字符串的父(也不可能)。 這會使我們想到您的「MyCustom」對象或您希望它執行/執行的操作。

通過使用下面的代碼,您將List中的對象類型限制爲Mycustom,這很好。但是如果你必須在該列表中添加一個字符串,那麼你應該刪除這些類型。另外使用List接口是一種更好的做法。

ArrayList<MyCustom> aList = new ArrayList<MyCustom>(); 
List aList = new ArrayList(); //This will allow all objects to be added to list. 

,或者根據您的需要進行MyCustom對象,你可以修改它使用如下: aList.add(new MyCustom("Name String"));aList.add(new MyCustom().setName("Name String"));

0

的ArrayList是用Java泛型類型。意味着它可以存儲任何對象。但要將對象存儲在ArrayList中,我們需要指定類名,這意味着ArrayList只存儲在聲明數組列表時指定的類名。

你的情況

ArrayList<MyCustom> aList = new ArrayList<MyCustom>(); 

聲明只具有MyCustom類對象,但

aList.add("My Name"); 

你存儲的字符串值的數組列表。並且String類和MyCustom類之間沒有關係。所以java編譯器顯示錯誤。要實現這一目標需要實現兩種

ArrayList<String> aList = new ArrayList<String>(); 

aList.add("My Name"); 

Class MyCustom { 

String field; 

public void setField(String f) { 

field=f; 
} 

public String getField() { 

return field; 
} 

} 

然後

ArrayList<MyCustom> aList = new ArrayList<MyCustom>(); 

aList.add(new MyCustom().setField("My Name")); 
相關問題