2014-09-01 19 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

相關問題