Java中的ArrayList的问题(只有这么多,全给了~)

来源:百度知道 编辑:UC知道 时间:2024/09/27 06:13:46
我的JDK是最新的
ArrayList list=new ArrayList();
list。add(1);
这时elipse报错,说“类型 ArrayList 中的方法 add(int, Object)对于参数(int)不适用”
但直接在cmd中运行却能通过,为什么???急急!!!!!

我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16
我的jdk的build path中显示的jdk版本号是jdk1.6.0_16

补充:改成 ArrayList <Integer>list=new ArrayList<Integer>();时
elipse也会报错,“语法错误,仅当源级别为 5.0 时已参数化的类型才可用”

检测一下能否用泛型
ArrayList<Integer> list = new ArrayList<Integer>();
也就是这样能否编译通过,不能的话jdk版本太低
另外,基本类型一般不能当对象使用,String除外

elipse有个默认的编译器的版本是1.4 ArrayList <Integer>list=new ArrayList<Integer>();这个表达式的意思是list里只能放Integer对象。
是一种泛型。表示对list的一种约束。泛型属于1。5新加的功能。所以想在eclipse里面编译通过,得改一下它的编译器版本号
按 Alt + Enter 键--->出现标题为“XXX(就是你的项目名)的属性”的对话框 ---->勾选“启动特定于项目的设置”然后在编译器一致性级别那里的下拉菜单中,选择5.0---->点击确定
如上操作就Ok了.

这样写:

ArrayList list = new ArrayList();
Integer i1 = new Integer(1);
list.add(i1);

1.elipse报错,说“类型 ArrayList 中的方法 add(int, Object)对于参数(int)不适用”
原因是:集合中只能放对象类型,而不能放简单类型

2.elipse也会报错,“语法错误,仅当源级别为 5.0 时已参数化的类型才可用”
原因是:java5.0以上才支持泛型,你的jvm是1.4或以下版本,所以在定义ArrayList的时候不要加泛型

是的,只有JDK1.5才支持这样定义。泛型

ArrayList只能存放对象数据类型,而不能存放基本数据类型。泛型必须是JDK5.0以上环境才能用。

你现在只能

ArrayList list=new ArrayList();
list.add(new Integer(1));

add方法要求放进一个Object类型.