java - ArrayList "get(i)"命令使用公共(public)类变量

标签 java arraylist

我正在尝试获取最长名字的长度并将其保存为 int longest,但是我的代码没有正确地从我的类(class) Student 中获取名字

这是我的代码:

public static int findLongestFirstName(ArrayList<Student> studentList) 
{
    int longest = 0;
    for (int i = 0; i < studentList.size(); i++)
        {
            if (studentList.get(i).getFirstName.length() > longest);
            {
                longest = studentList.get(i).getFirstName.length();
            }
        }
    return longest;
}

这是我获取变量的地方:

public class Student 
{
private int IDnum;
private String firstName;
private String lastName;
private int gradYear;
private double gradePoint;
public Student(int ID, String first, String last, int year, double GPA)
{
    IDnum = ID;
    firstName = first;
    lastName = last;
    gradYear = year;
    gradePoint = GPA;
}
public int getID()
{
    return IDnum;
}
public String getFirstName()
{
    return firstName;
}
public String getLastName()
{
    return lastName;
}
public int getYear()
{
    return gradYear;
}
public double getGPA()
{
    return gradePoint;
}

最佳答案

getFirstName 不是一个变量,它是一个方法。 Java 语法在调用方法时需要括号(即使该方法不带参数):

if (studentList.get(i).getFirstName().length() > longest);
                                   ^^

(在下一行)。

顺便说一句,您可以将整个 if 结构替换为:

longest = Math.max(studentList.get(i).getFirstName().length(), longest);

为了进一步简化,您可以使用 for-each 循环:

public static int findLongestFirstName(ArrayList<Student> studentList) 
{
    int longest = 0;
    for (Student student : studentList) {
        longest = Math.max(student.getFirstName().length(), longest);
    }
    return longest;
}

关于java - ArrayList "get(i)"命令使用公共(public)类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285105/

相关文章:

java - 删除字符串

java - 在 Hadoop 中,如果你想将每个键值对的值保存到一个数组中,为什么你添加的所有元素都是相同的?

java - ArrayList 声明与转换

java - 同步 arrayList- 不兼容的类型

java - 使用手动输入将整数、 double 或字符串存储在 Comparable ArrayList 中

java - assertionLock引起的内存泄漏 org.apache.catalina.loader.WebappClassLoader

java - 遍历 JTabbedPane 中的选项卡组件

java - 更新 Jtable 中的复选框进入递归,导致堆栈溢出错误

java - 如何在我的 swing 应用程序中使用 Java 类调用并向 Servlet 传递参数?

Java:索引越界