ProjectEuler-#4-Java-尝试微调,与ArrayList有关

ProjectEuler-#4-Java-尝试微调,与ArrayList有关,java,arraylist,project,palindrome,Java,Arraylist,Project,Palindrome,我最近写了一个程序来解决Euler项目的问题4,我只需搜索回文列表中最大的回文产品,就可以得到正确的答案 现在,我正试图微调我的程序,以实际搜索最高回文并打印出来。虽然在尝试将回文添加到ArrayList时,我一直得到一个“空指针异常”,但我尝试了ArrayList和ArrayList,两者都给出了相同的异常 这是程序,问题是在以下行之后: if (this.isPalindrome(toTest)) { ... 在我添加到阵列的地方,我不知道出了什么问题。非常感谢您的帮助!提前谢谢 publ

我最近写了一个程序来解决Euler项目的问题4,我只需搜索回文列表中最大的回文产品,就可以得到正确的答案

现在,我正试图微调我的程序,以实际搜索最高回文并打印出来。虽然在尝试将回文添加到ArrayList时,我一直得到一个“空指针异常”,但我尝试了ArrayList和ArrayList,两者都给出了相同的异常

这是程序,问题是在以下行之后:

if (this.isPalindrome(toTest)) { ...
在我添加到阵列的地方,我不知道出了什么问题。非常感谢您的帮助!提前谢谢

public void PalinProduct() {
    int pos = 0;
    for (int i = 100; i < 1000; i++) {
        for (int j = 100; j < 1000; j++) {

            int x = (i * j);
            String toTest = Integer.toString(x);
            if (this.isPalindrome(toTest)) {
                palinArray2.add(toTest);
            }

        }
    }
    for (int i = 0; i < palinArray2.size(); i++) {
        int max = 0;
        if (Integer.parseInt(palinArray2.get(i)) > max) {
            pos = i;
        }
    }

    System.out.println("Largest palindrome is " + palinArray2.get(pos));
}
public void PalinProduct(){
int pos=0;
对于(int i=100;i<1000;i++){
对于(int j=100;j<1000;j++){
int x=(i*j);
字符串toTest=Integer.toString(x);
如果(此.isPalindrome(toTest)){
palinArray2.添加(图腾测试);
}
}
}
对于(int i=0;imax){
pos=i;
}
}
System.out.println(“最大回文是”+palinaray2.get(pos));
}

您在哪里初始化了
palinArray2
?当你谈论任何错误时,请分享整个错误日志。可能重复我刚刚在PalinProduct方法中移动了初始化,它似乎工作了。我不明白为什么,因为我之前在课堂上把它初始化为一个字段,从我迄今为止所学的知识来看,它应该很好用。有没有可能要求澄清为什么会这样?看起来您是在PalinProduct构造函数中执行所有这些操作-因此,在构造函数返回之前,对象中的任何成员变量都不可用(除非您在该构造函数中设置它们)。一个更简单的解决方案是将初始化代码移动到一个新的方法中,在构造完PalinProduct对象后调用该方法。