一、List接口

List 接口继承了Collection接口,通常将 实现List接口的类成为List集合。

List集合的特点(1)允许出现重复的元素;

        (2)储存在集合中的元素是有序的;

        (3)集合中元素取出的顺序和存入的顺序一致。

List接口的实现类有ArrayList类和 LinkedList类。

1)ArrayList集合

ArrayList集合类实现List接口。ArrayList内部封装了一个可变长度的数组对象,当储存的元素超过了集合的长度时,ArrayList就在内存中分配一个更大的数组来储存这些元素,因此可以将ArrayList看作一个长度可变的数组。

ArrayList集合的优点:使用索引访问数据较快

ArrayList集合的缺点:不适用于大量添加或删除元素的操作。(因为ArrayList集合的底层是由数组来保存数据的,所增加或删除元素时程序就会重新创建数组来保存。如果程序一直创建新的数组,就会导致程序的性能降低)

ArrayList集合中的元素的索引是从0开始的。通俗讲就是集合的第一个元素的索引为0。

获取ArrayList集合中元素有两种方法:

public class ArrayList{
      public static void main(String [] args){
           ArrayList c = new ArrayList();
             c.add("a");
             c.add("b");
             c.add("c");
    } 
}    

 

(1)使用迭代器Iterator遍历集合中的元素并打印出来;

//使用迭代器遍历集合中的元素
        Iterator<String> it  = c.iterator();
        //it.hasNext()判断游标右边是否有元素,有为True
        while(it.hasNext()){
            //获取集合中的元素(返回迭代中的下一个元素。)
            String s = (String) it.next();
            System.out.println(s);
        }

 

(2)使用for循环或者foreach循环遍历集合中的元素。

   for循环:

    for(int i = 0;i<ls.size();i++){
            //get(i)获取i索引处的集合对象
            System.out.println(ls.get(i));
        }

   foreach循环(加强的for循环):

for(Object o:ls){
            System.out.println(o);
        }

2)LinkedList集合

LnkedList类实现了List接口,它提供了一个链接列表数据结构,链表中的每一个元素都使用 引用 的方式记录了它的前一个元素和后一个元素。

当我们插入或者删除元素时,程序只要修改元素之间的引用关系就可以。

LinkedList集合的优点:(1)提高删除和修改元素的效率;

           (2)对元素增加和删除针对性的操作。

LinkedList集合的缺点:随机访问集合中的元素,LinkedList比ArrayList慢。

获取LinkedList集合中元素和获取ArrayList集合中元素一样都有相同的两种方法,可以借鉴下获取ArrayList集合中元素方法。