ArrayList

package util;
import java.util.*;
public class ArrayListTest {
/*
 * 
 *    ArrayList本质是一个数组,用户在操作其数据的时候,ArrayList会根椐需要进行增加删除
 *    因为其实现,所以不适合数据的增删,但非常适合查询,有点像CD光盘
 * 
 *    使用时注意,最好预先创建好合适的ArrayList大小,
 *    
 *    当ArrayList发现自已的容量不足时,就会在堆中开辟一块新的空间,空间大小为原来的*3/2+1的大小,
 *     然后将现有数据搬过去,原来的数据变为垃圾
 *    
 *    
 * 
 * 
 *    ArrayList alist = new ArrayList(100);
 */
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //别名,动态数组
        ArrayList alist = new ArrayList();
        //LinkedList alist = new LinkedList();
        alist.add("string");   //
        //alist.add(1);//jdk1.5之后,
                      //如果要用对象的地方我们使用的基本的数据类型,
                      //那么会被系统自动转为包装类,此例中的1会被自动转为Integer
                      //反之,在使用基本数据类型的地方,我们写入了包装类的对象,会自动转为基本数据类型
        alist.add("integer");
        alist.add("Boolean");
        alist.add("Long");
        alist.add("Double");//放入后元素都会变成Object类型,所以取出的时候记得转型
        alist.add("Double");
        alist.add(2,"Byte");//将元素放在索引2下
        alist.set(0, "String");
        for(int i = 0 ; i < alist.size();i++){
            
            String str = (String)alist.get(i);
            System.out.println(str);
        }
        
        
        for(Object obj : alist){ //1.5后出现的
            
            String str = (String)obj;
            System.out.println(str);
        }
        
        //迭代器.在for。。。。each没出现之前,是集合遍历的最佳解决方案
        Iterator it = alist.iterator();
        while(it.hasNext()){
            String str = (String)it.next();
            //it.remove();移除当前的元素
            System.out.println(str);
        }
        
        //alist.remove(0);//移除指定索引位的值
        
        System.out.println("是否包含Double"+alist.contains("Double"));
    }

}

 

package util;

/*
 * LinkedList可以弥补ArrayList在增删方面的不足,
 * 它的实现和ArrayList不同,使用的是链表
 * 
 * LinedList查找是效率不高的,因为它不ArrayList
 * 一样 是数组,长度固定,可以跳过一些元素直接得到想要的元素
 * LinkedList必须逐个检索
 * 
 * 有点像磁带机
 * 
 * 
 */

public class LinkedListTest {
    
    
    //在使用的时候和ArrayList时感觉不出区别

}

 

package util;

public class VectorTest {
    
    
    
    public static void main(String[] args) {
        
        //Vector的实现和ArrayList是一样的,
        //不同点在两个地方
        /*
         * 
         * 1. Vector 线程安全的,ArrayList不安全
         * 2. 增长方式:ArrayList*3/2+1,Vector*2
         * 
         * 
         */
        
        
    }
    
    /*****
     * 
     *    自已实现MyArrayList: 构造方法,add(),remove(),size();
     *     应该有这个几个属性 : 1.ArrayList真实的大小,
     *                          2. ArrayList 存放的对象的数量size;
     *    
     * 
     *    
     * 
     * 
     * 
     * 
     * 
     */

}

 

posted @ 2012-10-19 11:26  邹晟  阅读(233)  评论(0编辑  收藏  举报