arraylist

来源:百度知道 编辑:UC知道 时间:2024/05/12 17:49:04
import java.util.ArrayList;
import java.io.File;
public class AA
{

public static void main(String []args)
{
ArrayList al = new ArrayList ();
al.add( "dfgsdfg");
System.out.println(al);

}

}
G:\编译~1>javac AA.java
注意:AA.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
================================================
import java.util.ArrayList;
import java.io.File;
public class AA
{

public static void main(String []args)
{
ArrayList al = new ArrayList ();
al.add( "dfgsdfg");
for (int i =0; i<al.size();i++)
System.out.println(al.get(i));

}

}

结果一样

这是JDK1.5引入泛型后的问题,关于泛型编程就说来话长了,对于当前的问题有三个解决办法。

1.编译的时候加个参数 -Xlint:unchecked

2.采用泛型编程,将下述声明:
ArrayList al = new ArrayList ();
改为:
ArrayList<String> al = new ArrayList<String>();

3.mian方法前加上一个元注释@SuppressWarnings("unchecked cast"),告诉编译器忽略强制转型的警告。

System.out.println(al);
ArrayList不能这么输出

用一个for循环遍历一下吧,用al.get(i)获得其中的值

呵呵,你是想知道为什么会出现注意那两行吧。
注意:AA.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

其实很简单。从Java5开始,Java语法引入了一个新的特性叫做范型。目的是为了类型安全考虑。
而ArrayList就是一种范型类型。

如果编译的时候不想看到这两行你可以这样
办法1:ArrayList<String> al = new ArrayList<String> ();
办法2:在public class AA的上一行添加这么一句
@SuppressWarnings("unchecked")//这个叫做注解,也是Java5的新特性

有关范型和注解的内容,可以参考<Java编程思想第四版>