我如何获得,例如:ArrayList <myclass>中所需位置的getName()?</myclass>

时间:2014-09-01 18:39:24

标签: java arraylist foreach

我现在正在使用基本馆藏,而且ArrayList这些.get(int)方法遇到了麻烦,因为这会返回整个对象,在我的情况下名称,年龄,电话,薪水等...但我只想在所需的位置获取对象的名称。

列表已经加载,方法已经完成,我现在正在使用它:

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循环应该通过列表检查,如果列表的索引与我想要的那个匹配,它会打印名称。

谢谢,对不起我难以理解的英语

2 个答案:

答案 0 :(得分:3)

只需尝试:

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

答案 1 :(得分:1)

您可以使用get(int)方法直接访问List的索引。它是从零开始的,所以请记住从零开始,而不是从一开始。

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