为什么我收到以下错误:cannot find symbol: method add
?这是我的代码:
import java.util.*
public class ArrayList {
// instance variables - replace the example below with your own
public void processinput(String s) {
int[] a = { 34, 25, 16, 98, 77, 101, 24 };
ArrayList b = new ArrayList();
for (int i = 0; i < a.length; i++) {
int d = a[i];
if (d % 2 > 0) {
b.add(new Integer(d));
}
}
for (int i = 0; i < b.size(); i++) {
System.out.print(b.get(i) + " ");
}
for (int i = a.length - 1; i >= 0; i--) {
System.out.print(a[i] + " ");
}
}
}
如何解决此错误?
答案 0 :(得分:4)
再次阅读你的问题,我认为你错过了
import java.util.*;
在课程开始时。这是您收到此错误的唯一方法。顺便说一下,您还应该收到类似“无法解析符号ArrayList”的错误,该错误会告诉您问题所在。
将最后一个循环更改为
for(int i = a.length-1; i >= 0; i--) {
凭借经验,您将能够阅读错误消息并理解它们的含义。在这种情况下
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at Main.main(Main.java:33)
在第33行,(或代码中的任何内容),您尝试访问超出数组末尾的索引。数组a
的最后一个元素是a.length-1
,因为第一个元素是0
仔细阅读错误消息非常重要,因为它们通常是解决问题的最佳线索以及如何解决问题。
发布问题时,您应该发布错误。
答案 1 :(得分:1)
有ArrayIndexOutOfBoundsException:7。修好这一行
for(int i = a.length-1; i >= 0; i--)
答案 2 :(得分:0)
您的类名为ArrayList
,这隐藏了java.util.ArrayList
,因此您的编译错误。您可以更改班级名称,也可以在声明java.util.ArrayList
时使用b
的全名。