Java 如何在arraylist中找到特定值?

Java 如何在arraylist中找到特定值?,java,arraylist,Java,Arraylist,我有一个列表,其中有一个列表是作为数据传递给我的。他们给出的示例是对象将如下所示: List assetClassCorrelationMatrix = new ArrayList(); List m1 = new ArrayList(); m1.add(2); m1.add(4); m1.add(0.8979); assetClassCorrelationMatrix.add(m1); List<List<Number>> assetClassCorrelationM

我有一个列表,其中有一个列表是作为数据传递给我的。他们给出的示例是对象将如下所示:

List assetClassCorrelationMatrix = new ArrayList();
List m1 = new ArrayList();
m1.add(2);
m1.add(4);
m1.add(0.8979);
assetClassCorrelationMatrix.add(m1);
List<List<Number>> assetClassCorrelationMatrix = new ArrayList<>();
List<Number> m1 = new ArrayList<>();
Number n = m1.get(2); // The indexes start from 0, so the index of the 3th element is 2
编辑:好的,很抱歉我不清楚。 我在想,这将是在

correlation[2][4] = 0.8979
相反,他们给了我:

correlation[0] = 2;
correlation[1] = 4;
correlation[2] = 0.8979;
当我只有相关[0]和相关[1]中的值时,我只需要返回相关[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));
}
    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);
编辑:编辑问题后,上下文似乎发生了根本性的变化。现在,在2D数组中有两个值,如索引值2和4,您需要获取索引的值。您可以使用2D阵列轻松完成此操作。但如果您想坚持使用列表,您可以这样做:

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));
}
    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 assetClassCorrelationMatrix = new ArrayList();
List m1 = new ArrayList();
m1.add(2);
m1.add(4);
m1.add(0.8979);
assetClassCorrelationMatrix.add(m1);
List<List<Number>> assetClassCorrelationMatrix = new ArrayList<>();
List<Number> m1 = new ArrayList<>();
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将自动转换为整数,0.8979将自动转换为双精度


使用前两个值迭代arraylist是什么意思?使用前两个值迭代arraylist以获得第三个值是什么意思?前两个值与列表中的第三个值无关。迭代列表应该与前两个列表没有什么不同,您可以使用索引2获得它。我想你可能需要澄清你想要的到底是什么。我不是在寻找0.8979,我需要能够找到它,其他两个值是2和4。我需要从arraylist中获取0.8979的值。我已经有了值2和4。我需要找到另外两个值是2和4的地方。。。。。哪一个是真的?我不知道你们要用geta-1还是getb-1。值2和4正是他们传递给我的。。也可以是3,7,-0.0847。这可能表明我不是java程序员,你需要索引2,4,3,7等的值,这是可以的。但是怎么可能是-0.0847呢?我把这个问题的措辞搞砸了,因为我不知道该怎么表达。知道我想要什么,只是不知道怎么说。我不想要索引处的值,我想要索引。布尔corr1=mat.get0.equalOuterassetClassID;布尔corr2=mat.get1.equalInnerAssetClassId;ifcorr1&&corr2双重相关=doublemat.get2;我想起来了。。。我花了10个小时,但是。谢谢你的帮助。