for-loop&amp;的ArrayList <整数> </整数>

时间:2011-09-29 08:15:09

标签: java for-loop arraylist iteration

这是Sun认证Java助理学习指南第2章中的一个简单练习,我遇到了麻烦。当我尝试编译下面的类时,我收到以下错误消息:

“错误:类型ArrayList不接受参数 ArrayList hookSizesList = new ArrayList&lt;&gt;;“

import java.lang.Iterable;

public class ArrayList {
public static void main(String[] args) {

    Integer hookSizeList;
    ArrayList<Integer> hookSizesList = new ArrayList<Integer>();
    hookSizesList.add(1);
    hookSizesList.add(4);
    hookSizesList.add(5);

    for (Integer hook: hookSizesList) System.out.print(hook + " ");
}
}

我非常感谢您提前帮助,谢谢!

7 个答案:

答案 0 :(得分:6)

您有很多错误,这是一个更新的代码段

import java.util.*;

public class Numbers {
    public static void main(String[] args) {
        List<Integer> hookSizesList = new ArrayList<Integer>();
        hookSizesList.add(1);
        hookSizesList.add(4);
        hookSizesList.add(5);

        for (Integer hook: hookSizesList) {
             System.out.print(hook + " ");
        }
    }
}

答案 1 :(得分:3)

您可能想要使用班级java.util.ArrayList。但是,由于您命名了自己的类ArrayList,这是您的程序使用的类,而您的ArrayList类不接受任何泛型参数。更改班级名称并导入java.util.ArrayList

答案 2 :(得分:2)

有一些奇怪的事情:

  1. 首先,您不要导入java.util.ArrayList。
  2. 您不需要导入java.lang.Iterable,因为java.lang中的类是自动导入的。
  3. 您的类与ArrayList的名称相同,这不是一个好主意。当您编写“ArrayList hookSizesList = new ArrayList();”时您正在初始化java.util.ArrayList但您自己的类,这不是泛型类。尝试做:
  4. import java.util.ArrayList;

    public class MyArrayList {
    
    public static void main(String[] args) {
    Integer hookSizeList; //<--looks useless
    ArrayList<Integer> hookSizesList = new ArrayList<Integer>();
    hookSizesList.add(1);
    hookSizesList.add(4);
    hookSizesList.add(5);
    
    for (Integer hook: hookSizesList) System.out.print(hook + " ");
    }
    }
    

答案 3 :(得分:1)

您创建的类名为ArrayList。

public class ArrayList {

该示例所涉及的类是java.util.ArrayList。

更改类的名称并导入java.util.ArrayList。

答案 4 :(得分:0)

您的课程不使用泛型,因此您无法使用ArrayList参数化<Integer>。除此之外,您似乎没有实施add()方法或实施Iterable或其他任何内容。但是要解决泛型问题,你必须有一个类声明,如:public class ArrayList<E>

也许你在尝试import java.lang.ArrayList;?在这种情况下,您可能需要考虑将您的类重命名为其他内容。

答案 5 :(得分:0)

代码中定义的ArrayList类(不是java.util.ArrayList<E>)没有定义任何泛型类型参数,因此您不能使用new ArrayList<Integer>(),而只能使用new ArrayList()(相同的变量声明)。

答案 6 :(得分:0)

您应该为您的班级使用其他名称。将您的班级从ArrayList重命名为其他内容。