2012-04-04 133 views
3

我正在處理數組,需要一些幫助。我想創建一個數組,其中第一個字段是一個字符串類型,第二個字段是一個整數類型。 對於結果:多種類型的數組

控制檯出

a 1 
b 2 
c 3 
+0

你試過了什麼? http://mattgemmell.com/2008/12/08/what-have-you-tried/ – 2012-04-04 08:47:09

+0

檢查此鏈接 http://stackoverflow.com/questions/4393027/mixed-arrays-in-c- and-c-sharp – 2012-04-04 08:49:45

回答

11

一個數組只能有一個類型。 您可以創建一個新的類,如:

Class Foo{ 
    String f1; 
    Integer f2; 
} 

Foo[] array=new Foo[10]; 

您可能也有興趣使用的地圖(在我看來,像你想的字符串映射到IDS)。

編輯: 你也可以定義你的數組類型的對象,但這是我通常會避免的。

6

您可以創建對象類型的數組,然後當你打印到控制檯調用每個元素的toString()

Object[] obj = new Object[]{"a", 1, "b", 2, "c", 3}; 
for (int i = 0; i < obj.length; i++) 
{ 
    System.out.print(obj[i].toString() + " "); 
} 

將產生:

1 B 2的C 3

-2

嘗試使用,而不是陣列矢量。

+0

Vector爲什麼會提供幫助,爲什麼Array不起作用? – 2012-04-04 08:58:38

+0

這個答案沒有絲毫解決這個問題! – Eric 2013-06-25 08:11:34

0
Object[] randArray = new Object [3]; 
randArray[0] = new Integer(5); 
randArray[1] = "Five"; 
randArray[2] = new Double(5.0); 

for(Object obj : randArray) { 
    System.out.println(obj.toString()); 
} 

這是你要找的嗎?

0
Object[] myArray = new Object[]{"a", 1, "b", 2 ,"c" , 3}; 

    for (Object element : myArray) { 
     System.out.println(element); 
    } 
0
Object [] field = new Object[6]; 
field[0] = "a"; 
field[1] = 1; 
field[2] = "b"; 
field[3] = 2; 
field[4] = "c"; 
field[5] = 3; 
for (Object o: field) 
    System.out.print(o); 
+0

你的解決方案不是一個非常靈活的方法... – xmoex 2012-04-04 08:52:51

+0

@xmoex:解決方案是好的,除非在這裏數組正在初始化粗糙的方式。 – 2012-04-04 09:00:05

+0

this Object [] myArray = new Object [] {「a」,1,「b」,2,「c」,3};只是語法糖,對於這個問題我的解決方案很好。 – chalimartines 2012-04-04 10:12:56