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.
Java中ArrayList、linkedList的使用和區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.