2013-03-15 72 views
0

我有对象的ArrayList,我试图在arrayList.getName() == target在对象的列表,你怎么能得到的对象时,你只能拥有对象的唯一名称

if(arrayList.contains(target)){ 
    System.out.print(arrayList.get(target)); 
} 
+0

您比较的字符串,然后使用'String.equals()'方法.. – Smit 2013-03-15 18:22:44

+0

那么,你的问题是什么? – imulsion 2013-03-15 18:22:47

+0

你的代码与你的目标有什么关系? – antonijn 2013-03-15 18:22:56

回答

5

假设你的对象是Foo类型:

for (Foo item : arrayList) { 
    if (item.getName().equals(target)) return item;  
} 
0
返回对象
for (int i = 0; i < arrayList.size(); ++i) { 
    if (arrayList.get(i).equals(target)) 
    return i; 
} 

或更好:

arrayList.indexOf(target) 
0

使用此

arrayList.get(arrayList.indexOf(target)) 

您需要检查-1条件。

0
if(arrayList.contains(target)){ 
    System.out.print(arrayList.get(arrayList.indexOf(target))); 
} 
+0

因此,如果'target'在这个列表中,为什么要使用'get()'和'indexOf()'?。其余的方法调用是不需要的。 – 2013-03-15 18:28:02

+2

我只是想解决OP的代码:)你说得对,当涉及到实际行为时,方法调用是多余的,但希望它对于get和indexOf的工作方式有一定的学习价值。 – ghdalum 2013-03-15 18:37:30

1

你可以试试这个:

int index = list.indexOf(elementToBeMatched); 
    if (index != -1) { 
     // Match found. Use this index 
    } else { 
     // match not found 
    } 
相关问题