簡體   English   中英

如何在arraylist中找到特定值?

[英]how can I find a specific value in a arraylist?

我有一個列表,該列表將作為數據傳遞給我。 他們給出的對象實例如下所示:

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[0]correlation[1]的值時,我只需要取回correlation[2]任何值

救命?

您不需要其他值即可在嵌套arraylist中查找特定值。 如果要在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));
}

編輯:編輯問題后,上下文似乎發生了根本變化。 現在,您有兩個值(例如2D數組中的索引值2和4),並且想要獲取索引的值。 您可以輕松地使用2D陣列執行此操作。 但是,如果您要堅持使用列表,則可以采用以下方式:

    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);

首先正確指定列表的類型,應該是這樣的:

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

然后,您可以使用List#get(int)來訪問值0.8979 ,如下所示:

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

如果要從assetClassCorrelationMatrix訪問它, assetClassCorrelationMatrix

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

您可以通過檢查類型來識別此值,實際上24將由於自動裝箱而自動轉換為Integer0.8979將轉換為Double

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM