2013-09-21 37 views
-2

有沒有其他選擇? (1組)列表<String>值'整數'

class team { 
     List<String> team = new ArrayList<String> 
     int score = 0; 
    } 

是否有一個對象存儲一個List或Set'String',它可以保存一個Integer的值?

在此先感謝。

+0

號,但可以在該整數轉換成'String' – nachokk

+3

我不明白你的」再問。你在問如何創建一個既能接受字符串又能接受整數的List或Set?在這種情況下,如果你使用泛型,那麼你必須聲明它們持有Object類,因爲這是'Integer'和'String'之間唯一的公共超類。 – Kon

+1

也許'List <>'不是你正在尋找的數據結構?這種結構將持有哪些實際值?也許你正在嘗試使用'List'來定製對象更合適? – David

回答

1

你可能想要的是一個新類型,同時擁有的String和你關心的int,如:

public class Score { 
    String group; 
    int score; 
} 

... 

List<Score> scores = new ArrayList<Score>(); 

要回答你原來的問題,但:最窄之間常見類型StringIntegerObject,你可以構建一個這樣的List

List<Object> group = new ArrayList<Object>(); 
group.add("string"); 
group.add(1); 

當然,這不僅限於StringInteger類型,您可以添加任何類型的對象。

或者,你可以強迫你IntegerString

String someNumber = String.valueOf(1); 

或構建一個新的類,它是更嚴格,並作爲一種聯盟:

public class StringOrInteger { 
    private final Object value; 
    public StringOrInteger(String string) { 
     value = string; 
    } 
    public StringOrInteger(Integer integer) { 
     value = integer; 
    } 
    public Object getValue() { 
     return value; 
    } 
} 

...然後有這些列表:

List<StringOrInteger> group = new ArrayList<StringOrInteger>(); 

(它將在le ast編譯時間限制)

您可能會對該類更有興趣,並使其返回一個正確投射的對象,但我認爲這取決於您希望使用的情況。

1

這聽起來像你需要一個積分對象:

class Score 
{ 
    int points; 
    String groupName; 
} 

,然後將它們的List<Score>