Java 用于环路&;ArrayList<;整数>;

Java 用于环路&;ArrayList<;整数>;,java,for-loop,arraylist,iteration,Java,For Loop,Arraylist,Iteration,这是Sun认证Java Associate学习指南第2章中的一个简单练习,我遇到了一些问题。当我尝试编译下面的类时,我收到以下错误消息: 错误:类型ArrayList不接受参数 ArrayList HookSizeList=新建ArrayList;” import java.lang.Iterable; 公共类数组列表{ 公共静态void main(字符串[]args){ 整数hookSizeList; ArrayList HookSizeList=新建ArrayList(); hookSize

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

错误:类型ArrayList不接受参数 ArrayList HookSizeList=新建ArrayList;”

import java.lang.Iterable;
公共类数组列表{
公共静态void main(字符串[]args){
整数hookSizeList;
ArrayList HookSizeList=新建ArrayList();
hookSizesList.add(1);
hookSizesList.add(4);
hookSizesList.add(5);
对于(整数hook:hookSizesList)System.out.print(hook+“”);
}
}

我真的非常感谢任何事先的帮助,谢谢

您可能希望使用类
java.util.ArrayList
。但是由于您将自己的类命名为
ArrayList
,因此这是您的程序使用的类,并且您的
ArrayList
类不接受任何泛型参数。更改类的名称并导入
java.util.ArrayList

您的类不使用泛型,因此无法使用
参数化
ArrayList
。除此之外,您似乎没有实现
add()
方法,也没有实现
Iterable
或任何其他相关内容。但要解决泛型问题,必须有一个类声明,如:
public-class-ArrayList


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

< P>代码中定义的<代码> ARARYLIST/<代码>类(不是<代码> java .UTIL.ARYLISTAB/COD>)不定义任何泛型类型参数,因此不能使用<代码>新的RayayList](/Cuth>),而只使用<代码>新的RayayList](< /代码>)(同样用于变量声明).

您应该为类使用不同的名称。将您的类从
ArrayList
重命名为其他名称。

您有许多错误,下面是一个更新的代码段

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 + " ");
        }
    }
}
import java.util.*;
公共课号{
公共静态void main(字符串[]args){
List hookSizesList=new ArrayList();
hookSizesList.add(1);
hookSizesList.add(4);
hookSizesList.add(5);
用于(整数挂钩:挂钩大小列表){
系统输出打印(钩子+“”);
}
}
}

您创建的类名为ArrayList

public class ArrayList {
该示例所涉及的类是java.util.ArrayList

public class ArrayList {

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

有一些奇怪的事情:

public class ArrayList {
  • 首先,您没有导入java.util.ArrayList
  • 您不需要导入java.lang.Iterable,因为java.lang中的类是自动导入的
  • 您的类与ArrayList同名,这不是一个好主意。编写“ArrayList hookSizesList=new ArrayList();”时,您正在初始化java.util.ArrayList,但您自己的类不是泛型类。试着做:
  • 导入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 + " ");
    }
    }
    
    公共类MyArrayList{
    公共静态void main(字符串[]args){
    
    Integer hookSizeList;//可能是因为它没有显示任何研究成果;)更改了我的类名和导入语句,它工作正常,感谢JB NizeList的快速响应!我很尴尬我使用了“ArrayList”作为一个类名。我改变了它和我的导入语句,就像你的代码片段一样,它编译得很好!感谢你的快速详细响应!这很有意义。作为一个noob,我感谢你的快速澄清michael!这非常令人鼓舞!Fabio,作为一个小孩,我感谢你对我的问题的清晰回答。没有它们,这将是一个错误对于像我这样的孩子来说,教自己如何编程要困难得多。我希望我有声望点来投票支持所有这些答案!