Java中ArrayList、linkedList的使用和區別

          Java中的ArrayList、LinkedList以及它們的區別
一、ArrayList
1.什麼是ArrayList:
    1.1、ArrayList就是動態數組,它提供了一些好處:
    1.2、動態的增加和減少一些元素
    1.3實現了collection和list的接口
    1.4、靈活的設置數組的大小
2.ArrayList的常用方法
    2.1、構造方法
    //構造一個具有指定初始化容量的列表
    public ArrayList(int? initial Capacity);
    //構造一個初始容量爲10的空列表
    public ArrayList(10);
    2.2常用方法
        2.2.1、添加元素
        add(E e);//將指定的元素添加到此列表的尾部
        add(int? E? element);//將指定的元素插入此列表中的指定位置
        2.2.2刪除元素
        remove(int? index);//移除此列表中指定位置上的元素,向左移動所有後續元素
        remove(object?0);//移除此列表中首次出現的指定元素(如果存在),則列表不
        做移動(如果不存在)。
        clear()//移除列表中的所有元素,此調用返回後,列表將爲空
        2.2.3獲取元素的總數
        size();//返回列表中的元素數
        2.2.4獲取元素
        get(int index);//返回此列表中最後一次出現的指定元素
        2.2.5設置位置
        set(int index , element);//用指定的元素替代此列表中指定的元素
        2.2.6查找
        indexOf(object o);//返回此列表中最後一次出現的指定元素的索引,
        或如果此列表中不包含索引,則返回-1
        2.2.7轉換爲數組
        toArray();//安適當順序(從第一個到最後一個)返回包含數組中所有
        元素的數組。
3、使用ArrayList的實例
import java.util.Arraylist;
public class List1{
    public class void main(String [] args){
       int i;
       ArrayList list = new ArrayList();
       //添加元素
       list.add("aaa");
       list.add("bbb");
       list.add("ccc");
       list.add("ddd");
       list.add("eee");
       //遍歷集合
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
       //刪除元素
       list.remove(3);
       Ststem.out.println("將索引是3 的元素刪除後,數組的元素是:")
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
       //set();的使用舉例
       String s = new String("t");
       list.set(0,t);
       list.set(1,h);
       Ststem.out.println("使用set()後,數組的元素是:")
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
    }
}
二、LinkedList
   1.什麼是linkedlist
   2.linkedlist的實例
import java.util.*;  
  
public class LinkedListDemo {  
      
    public static void main(String []args){  
          
        LinkedList  list = new LinkedList();  
        //添加元素  
        list.add("one");  
        list.add("two");  
        list.add("three");
	//size()返回鏈表中的元素數
        
        System.out.println("<--list中的內容 :" + list + "-->");  
        //返回鏈表中的第一個元素  
        String first = (String) list.getFirst(); 
	//返回鏈表中的最後一個元素
        String last = (String) list.getLast();  
        System.out.println("<--list中第一個元素爲 :" + first + "-->");  
          
        //在鏈表最前面添加一個元素  
        list.addFirst("Begin");
        System.out.println("<--list中最後一個元素爲 :" + last + "-->");
	在元素最末尾添加一個元素
        list.addLast("End");  
        
        System.out.println("<--list中的內容 :" + list + "-->");  
        System.out.println("<--刪除list中的第一個和最後一個元素-->");
	//刪除鏈表中的第一個元素
        list.removeFirst(); 
	刪除鏈表中的最後一個元素
        list.removeLast();  
        System.out.println("<--list中的內容 :" + list + "-->");         
    }  
}  
三、ArrayList、LinkedList的區別
1.ArrayList、是基於動態數組的數據結構,而LinkedList 是基於鏈表的數據結構

2.在往裏面插入數據時(add、remove操作時),linkedlist會比arraylist快很多,
因爲前者僅僅是一個類型的插入,而後者要將整個數組向後移動
3.對於隨機訪問的(get()/set())操作,arraylist優先於linkedlist,因爲linkedlist
要移動指針
總之,當操作是在一列數據的後面添加數據而不是在前面或中間,並且需要隨機的訪問
其中的元素時,使用arraylist會提供較好的性能;當你操作的是在一列數據的前面或中
間添加或刪除數據,並且按照順序訪問其中的元素時,就應該使用linkedlist.
 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章