2011-09-06 93 views
0

如何從列表中獲取特定元素?獲取列表<Double[]>元素

Double[] weightArray = {240.0, 220d, 230.0, 240.0, 250.0,220.0, 215.0, 220.0,215d,223d}; 
Double[] pulseArray= {72.0,74.0,75.0,76.0,72.0,78.0,62.0,78.0,76.0,73.0,73.0,79.0}; 
Double[] sysArray={120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0}; 
Double[] diaArray={80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0}; 

List<double[]> values = new ArrayList<double[]>(); 

for(int i=0; i<weightArray.length; i++){ 

values.add(new double[] {weightArray[0], weightArray[1], weightArray[2], weightArray[3], weightArray[4], weightArray[5], weightArray[6], weightArray[7],weightArray[8], weightArray[9] }); 
values.add(new double[] {pulseArray[0],pulseArray[1],pulseArray[2],pulseArray[3],pulseArray[4], 
      pulseArray[5],pulseArray[6],pulseArray[7],pulseArray[8],pulseArray[9] }); 
values.add(new double[] {sysArray[0],sysArray[1],sysArray[2],sysArray[3],sysArray[4], 
      sysArray[5],sysArray[6],sysArray[7],sysArray[8],sysArray[9] }); 
values.add(new double[] {diaArray[0],diaArray[1],diaArray[2],diaArray[3],diaArray[4], 
      diaArray[5],diaArray[6],diaArray[7],diaArray[8],diaArray[9] });  

} 

// Does not work 
//Object element =values.get(3,2); 
//String s= element.toString(); 
//Toast.makeText(context, s.toString() , Toast.LENGTH_SHORT).show(); 

例如,我想獲得價值元素3,2,(diaArrray [1])

+0

你意識到你的代碼,'values'與每10份結束四個陣列?另外,'double'和'Double'之間的裝箱和拆箱有很多開銷;這是有原因的嗎? –

+0

Martin和Mike,兩個答案都很有幫助並解決了我的問題。我也能夠清理一些代碼。再次感謝。 –

回答

1

如何從列表中獲取特定元素?

要從列表中獲取元素,請使用get(int)方法。

這將返回您的原始雙數組。然後從該數組中選取一個元素。

double d = values.get(3)[2]; 

注意的事實是,你可以簡單地添加數組是這樣的:

double[] weightArray = {240.0d, 220.0d, 230.0d, 240.0d, 250.0d, 220.0d, 215.0d, 220.0d, 215.0d, 223.0d}; 
List<double[]> values = new ArrayList<double[]>(); 
values.add(weightArray); 
5
values.get(listIndex)[arrayIndex] 

應該這樣做。

您也可以嘗試改變

Double[] 

double[] 

,除非你有一個令人信服的理由,想的Double秒的陣列。這將導致auto-boxing混亂的道路。

而且裏面

for(int i=0; i<weightArray.length; i++){ ... } 
你不實際使用 i看起來可疑我