2014-09-01 17 views
0

我现在正在使用基本馆藏,我遇到了问题ArrayList.get(int)这样的方法,因为那会返回整个对象,在我的情况下名称,年龄,电话,薪水等...但我只是想获取所需位置的对象名称。我如何得到,例如:ArrayList中的所需位置的getName()<MyClass>?

名单已经加载和方法来完成,并且我真的当前与此:

System.out.println("Desired Position?"); 
pos = Integer.parseInt(in.nextLine()); 
for(Employee i : list) 
{ 
    if(list.indexOf(i)==pos) // <- Was out of ideas here 
    { 
     System.out.println(i.getName()); 
    }  
} 

所以......事情是:我进入的位置和for-each循环应该通过列表检查,如果列表的索引与我想要的索引匹配,则打印名称。

谢谢,对不起,我几乎听不懂的英语

+4

尝试'list.get(pos).getName()'。 ArrayLists提供快速的索引查找。 – soulcheck 2014-09-01 18:40:38

+1

我的上帝......这是那么容易?现在我感觉不好... – DS94 2014-09-01 18:42:16

回答

1

您可以直接通过get(int)方法访问列表的索引。它是基于零的,因此请记得从零开始,而不是从一开始。

import java.util.*; 

public class Main 
{ 
    public static void main(String[] args) 
    { 
     List<Employee> list = new ArrayList<Employee>(); 
     list.add(new Employee("Alex")); 
     list.add(new Employee("John")); 
     list.add(new Employee("Mary")); 

     Scanner scanner = new Scanner(System.in); 

     System.out.println("Desired Position between 0 and 2?"); 
     int pos = scanner.nextInt(); 

     System.out.println(list.get(pos).getName()); 
    } 
} 

class Employee 
{ 
    private String name; 

    Employee(String name) 
    { 
     this.name = name; 
    } 

    public String getName() 
    { 
     return name; 
    } 
} 
3

简单的尝试:

System.out.println("Desired Position?"); 
pos = Integer.parseInt(in.nextLine()); 
if(pos > 0 && pos < list.size()) { 
    System.out.println(list.get(pos).getName()); 
} 
+0

现在我得到了list.get(pos).getName()并知道你只需要在.get()中输入位置,不需要使用任何一种条件或循环?还是这样做更好? – DS94 2014-09-01 18:57:19

+0

除非您想实现其他目的,否则不需要循环。如果您需要新的答案,请提出一个新问题:) – 2014-09-01 19:01:04

相关问题