List 作为 Collection 的子接口,当然可以使用Collection 接口里的全部方法。而且由于 List 是有序集合,因此 List 集合里增加了一些根据索引来操作集合元素的方法。List 是线程不安全的

》ArrayList

  ArrayList 作为 List 接口的实现类,存储的是一组不唯一,有序的(插入顺序)的对象,ArrayList 实现了长度可变的数组,在内存中分配连续空间。遍历元素 和随机访问元素效率比较高。

      

        

public static void main(String[] args) {
        
        //创建 List 对象
        List list =new ArrayList();
        
        //添加元素
        list.add(new String("小红"));
         list.add(new String("小明"));
        list.add(new String("小兰"));
        list.add(new String("小花"));
        
        //将元素插入到指定的位置         下标从0开始
        //list.add(2, new String("小花"));

        //返回指定元素在集合中第一次出现的索引
        System.out.println(list.indexOf("小花"));   //输出 2 
        
        //返回指定元素在集合中最后一次出现的索引
        System.out.println(list.lastIndexOf("小花"));  //输出 4 
        
        //将指定索引的元素替换成新元素,返回被替换的旧元素
        System.out.println(list.set(3, "小雪"));
        
        //返回从索引1(包含)到索引3(不包含)处所有集合元素组成的子集合。
        System.out.println(list.subList(1, 3));
        
        //删除指定位置的元素,也可以按照对象删除
        list.remove(1);
        
        //遍历集合,拿到集合中的元素
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        
        //使用 iterator 迭代集合
        Iterator lit=list.iterator();
        
        while(lit.hasNext()){
            System.out.println(lit.next());
        }
        
    }

 

》LinkedList

  LinkedList 类也是 List 接口的实现类,也实现了 List 的优点,可以根据索引来随机访问集合中的元素。LinkedList是以链表形式存储数据的。插入、删除元素时效率比较高。除此之外,LinkedList 还实现了 Deque接口,可以被当成双端队列来使用,用词即可以被当成 “栈” 来使用,也可以当成队列使用。

 

        

 

public static void main(String[] args) {
        
        LinkedList list=new LinkedList();
        
        list.add(new String("小红"));
         list.add(new String("小明"));
        list.add(new String("小兰"));
        list.add(new String("小花"));
        
        
        list.addFirst("张无忌");  //在列表首部添加元素
        
        list.addLast("小鱼儿");  //在列表尾部添加元素
        
        System.out.println(list.getFirst());   //返回列表的第一个元素
        
        System.out.println(list.getLast());    //返回列表的最后一个元素
        
        System.out.println(list.removeFirst());  //删除并返回列表中的第一个元素
        
        System.out.println(list.removeLast());   //删除并返回列表的最后一个元素
        
    }

 

 posted on 2017-08-17 11:38  【邵江】  阅读(165)  评论(0编辑  收藏  举报