【问题标题】:How do i get, for example : getName() of the desired position inside an ArrayList <MyClass>?例如,我如何获得: ArrayList <MyClass> 中所需位置的 getName()?
【发布时间】:2014-09-01 18:39:24
【问题描述】:

我现在正在使用基本集合,我在使用它们 ArrayList 方法时遇到了问题,例如 .get(int),因为这将返回整个对象,在我的例子中是 Name、Age、Phone、Salary...等等,但我只想在所需位置获取对象的名称。

列表已经加载并且方法已经完成,我目前正在使用这个:

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

谢谢你,对我几乎看不懂的英语感到抱歉

【问题讨论】:

  • 试试list.get(pos).getName()。 ArrayLists 提供快速的按索引查找。
  • 我的天...就这么简单?现在我感觉很糟糕......

标签: java arraylist foreach


【解决方案1】:

试试吧:

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

【讨论】:

  • 现在我得到了 list.get(pos).getName() 并且知道你只需要在 .get() 中输入位置,是不是没有必要使用任何类型的条件或环形?还是这样做更好?
  • 除非您想实现其他目标,否则无需循环。如果您需要新答案,请提出新问题:)
【解决方案2】:

您可以使用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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多