import java.util.*;
public class Geometry3
{
    public static void main(String[] args)
    {
     ArrayList al=new ArrayList();
     for(int i=0;i<5;i++)
     {
     al.add(String.valueOf(i));
     }
     for(int i=6;i<8;i++)
     {
     al.set(i-5,String.valueOf(i));
     }
     System.out.println("这里是ArrayList操作后的结果:");
     System.out.println(al);
     Object o=al.get(3);
     String s=(String)o;
     System.out.println("索引为3的元素长度为:"+s.length());
    }
}
小生这道程序能运行,就是有些不完善的地方,老是有感叹号的警告,是什么原因了?呵呵,刚入门,JAVA

解决方案 »

  1.   

    叹号是因为arraylist<List>这里面可以写list的类型,不写也可以
      

  2.   

    ArrayList<String> al=new ArrayList<String>();
    LZ可看看泛型
      

  3.   

    可以用注释来消除警告
    @SuppressWarnings("unchecked")
      

  4.   

    楼上两个人的说法都可以。这都是JDK1.5的新特性,一个是泛型,一个是原类型。你去看看吧。
      

  5.   

    泛型是JDK 1.5的新特性,使用ArrayList时不使用泛型,
    会警告使用了已过时的操作。只要使用泛型即可消除警告,
    ArrayList <String> al=new ArrayList <String>(); 
      

  6.   

    因为接口Collection<E>这里可以设置泛型了阿.  
    比如说你List list=new ArrarList();这样的话,你用list.add(Object O);不管你存的什么类型的数据进去全部给你变成Object了. 当然你用list.get(int index)时要转回来,  这样有点影响的就是,假如你一不小心存了几种不同的数据的话,用循环处理起来就会出问题了,可能运行期会抛出ClassCastException..
    所以这个地方你如果List<String> list=new ArrayList<String>()这样实例化的话,那么你每次add的时候就只能添加String了.而且每次get出来的元素全部是String类型的,方便循环操作,也不会有那么多警告了.
      

  7.   

    这是新特性里面的泛型...可不用太过在意..如果真要去掉叹号有2种途径..
    一是:Arraylist <对应的类型>
    二是:把jdk的版本改成1.4
    建议使用第一种方式...