我现在正在使用基本馆藏,而且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循环应该通过列表检查,如果列表的索引与我想要的那个匹配,它会打印名称。
谢谢,对不起我难以理解的英语
答案 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;
}
}