Java中Arraylist,vector,還有Linklist的用法及區別_acm


綜述:

ArrayList,Vector主要區別為以下幾點:
(1):Vector是線程安全的,源碼中有很多的synchronized可以看出,而ArrayList不是。導致Vector效率無法和ArrayList相比;
(2):ArrayList和Vector都采用線性連續存儲空間,當存儲空間不足的時候,ArrayList默認增加為原來的50%,Vector默認增加為原來的一倍;
(3):Vector可以設置capacityIncrement,而ArrayList不可以,從字面理解就是capacity容量,Increment增加,容量增長的參數。

LinkedList是用鏈表結構存儲數據的,很適合數據的動態插入和刪除,隨機訪問和遍歷速度比較慢。另外,他還提供了List接口中沒有定義的方法,專門用於操作表頭和表尾元素,可以當作堆棧、隊列和雙向隊列使用

所以我這里不介紹vector了,只介紹ArrayList和Linkedlist

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class test {
 5 
 6     public static void main(String[] args) {
 7         ArrayList<String> person = new ArrayList<>();
 8         person.add("xiaoming");
 9         person.add("marry");
10         person.add("xuyan");
11         person.add("xiaomi");//在后面添加
12         person.add(0, "xiaofang");//指定位置添加元素
13         person.remove(1);
14         person.remove("xiaomi");//按照指定位置移除元素
15         String str = person.get(2);//按照下標獲取元素
16         
17         person.set(2, "xiaofang");//改變指定下標的元素
18         if(!person.isEmpty())//判斷是否為空
19             System.out.println(person.indexOf("xiaofang") + " " + person.lastIndexOf("xiaofang"));//判斷指定字符串下標
20         
21         
22         System.out.println(person);
23         System.out.println(str);
24     }
25 
26 }

關於linkedlist,這個博客寫的真是太好了

感覺就是鏈表,能夠順序讀取,不要隨機讀取

哈哈

附地址

http://blog.csdn.net/shengmingqijiquan/article/details/52640584


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM