2016-08-29 72 views
-1

我有一個列表,我被作爲數據傳遞。他們給的例子是這個物體看起來像這樣:如何在數組列表中找到特定值?

List assetClassCorrelationMatrix = new ArrayList(); 
List m1 = new ArrayList(); 
m1.add(2); 
m1.add(4); 
m1.add(0.8979); 
assetClassCorrelationMatrix.add(m1); 

編輯:好的,所以我很抱歉我不清楚。 我在想,這將是在

correlation[2][4] = 0.8979 

結構相反,他們給我:

correlation[0] = 2; 
correlation[1] = 4; 
correlation[2] = 0.8979; 

我只是需要找回無論是在correlation[2]時,我纔有價值是什麼在correlation[0]correlation[1]

幫助?

+0

你是什麼意思,「通過使用前兩個值迭代通過arraylist」? – hahn

+0

你是什麼意思迭代通過'ArrayList' **使用前兩個值來獲得第三**?前兩個值與列表中的第三個值無關。迭代列表應該與前兩個沒有什麼區別,你可以使用索引'2'來獲得它。我想你可能需要澄清一下你到底想要什麼。 – Thor84no

回答

3

您不需要其他值來在嵌套的數組列表中查找特定值。如果您在ArrayList中assetClassCorrelationMatrix尋找一個特定的值,你可以這樣說:

double num = 0.8979;   
for (Object object: assetClassCorrelationMatrix) {    
    List list = (List) object;          
    if(list.contains(num)) 
     System.out.println("The number " + num + " is found at index = " + list.indexOf(num)); 
} 

編輯:你編輯的問題後,似乎語境的根本性的改變。現在你有兩個值(比如二維數組中的索引值2和4),並且你想得到索引的值。你可以很容易地使用二維數組來完成。但是,如果你想堅持列表,你可以走了這條路:

List assetClassCorrelationMatrix = new ArrayList(); 

    int a=2, b=4; 

    List m1 = new ArrayList(); 
    List m2 = new ArrayList();   

    // inserting values 
    m2.add(0, 1.1); 
    m2.add(1, 2.0); 
    m2.add(2, 0.5); 
    m2.add(3, 0.8979); 

    assetClassCorrelationMatrix.add(m1); 
    assetClassCorrelationMatrix.add(m2); 

    List list = (List) assetClassCorrelationMatrix.get(a-1); 
    Number number = (Number) list.get(b-1); 
    System.out.println("List = " + a + " and index = " + b + " and the number = " + number); 
+0

這不是我要找的「找到」0.8979,我需要能夠找到它在其他兩個值是2和4的地方。 –

+0

''我需要從數組列表中獲得0.8979的值。值2和4.「'和'」我需要能夠找到它的其他兩個值是2和4.「..... .....這是真的嗎? – Shahid

+0

對不起,我沒有更好地解釋它,重新編輯 –

1

開始通過指定的名單正確的類型,它應該是這樣的:

List<List<Number>> assetClassCorrelationMatrix = new ArrayList<>(); 
List<Number> m1 = new ArrayList<>(); 

然後你就可以訪問到你的價值0.8979使用List#get(int),像這樣:

Number n = m1.get(2); // The indexes start from 0, so the index of the 3th element is 2 

如果你想從assetClassCorrelationMatrix訪問,這將是:

Number n = assetClassCorrelationMatrix.get(0).get(2); 

您可以通過檢查的種類,確實2識別其他中這個值和4將自動爲Integer轉換由於自動裝箱和0.8979Double

for (Number n : m1) { 
    if (n instanceof Double) { 
     // Here is the code that treats the Double value 
    } 
} 
相關問題