代码改变世界

java ArrayList和Iterator

2012-10-03 14:41  youxin  阅读(1050)  评论(0编辑  收藏  举报

创建ArrayL对象

ArrayList a=new ArrayList();

加入元素

a.add(E e);

在指定的位置修改元素

a.set(1,"world");

把位置1的元素设为world

插入元素

a.add(int index .E e);

在位置index 插入元素

remove(int index)  移除指定位置元素

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class ArrayListTest {
   public static void main(String[] args)
   {
      List a=new ArrayList();
       String s1="hello";
       String s2="world";
       a.add(s1);
       a.add(s2);
       a.add(0,"happy");
       a.add(3);
      
        
       for(int i=0;i<a.size();i++)
       {
           System.out.println(i+"  "+a.get(i));
       }
    
       int d=(Integer)a.get(3);
       String s=(String)a.get(0);
       System.out.println("\n"+s);
     
   }

}

读取对象时,一定要用强制类型转换:

如果改为 a.get(3)值为3.

int d= a.get(3); 错误:Type mismatch: cannot convert from Object to int

注意存进去的类型要与取出来时候的类型相匹配。如果存进去的是Interger, String s=(String)a.get(0);
会报错:java.lang.Integer cannot be cast to java.lang.String

当我们直接a.add(1);实际上存进去的是Integer类型的对象。非对象的基本类型的数值可以用数组存储,但是,如果能用对象来表示数值,就可以用ArrayList来存储了。
Integer n=new Integer(10);
a.add(n);

数值的包装对象无法直接进行计算,而必须先用Integer类的intValue方法和Double类的doubleValue方法获得基本类型的hi。
n.intValue();

获取ArrayList的元素个数:
int theSize=arrayList.size();
不能用length;那是数组用的。

迭代器应用:
 list l = new ArrayList();
 l.add("aa");
 l.add("bb");
 l.add("cc");
 for (Iterator iter = l.iterator(); iter.hasNext();) {
  String str = (String)iter.next();
  System.out.println(str);
 }
 /*迭代器用于while循环
 Iterator iter = l.iterator();
 while(iter.hasNext()){
  String str = (String) iter.next();
  System.out.println(str);
 }
 */

我们上面用的迭代器,返回的是一个object,需要typecast