国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java集合——ArrayList與Vector的區別

2019-11-06 08:53:23
字體:
來源:轉載
供稿:網友

ArrayList和Vector都實現了List接口,而List一共有ArrayList、Vector、LinkedList三個實現類。List可以存放多個元素,能夠維護元素的順序,并且允許元素的重復。

首先來看一個Vector的應用實例:

import java.util.Vector;public class VetorTest2 {	public static void main(String[] args) {		// TODO Auto-generated method stub		Staff st1 = new Staff("孫悟空",25);		Staff st2 = new Staff("豬八戒",25);				Vector vv = new Vector();		vv.add(st1);		vv.add(st2);				for(int i=0;i<vv.size();i++){			Staff staff = (Staff) vv.get(i);			System.out.PRintln("員工:"+staff.name+"年齡:"+staff.age);		}	}}class Staff{	String name;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}	int age;	public Staff(String name, int age) {		super();		this.name = name;		this.age = age;	}}

通過上面的Code可以看出,在使用方法上,Vector與ArrayList沒有什么區別,但是在2個方面:線程安全、存儲空間增長。

1、ArrayList是最常用的List實現類,內部是通過數組實現的,它允許對元素進行快速隨機訪問。并且是異步的。

       它的缺點在于數據存儲之間不能有間隔,當空間大小不能滿足數據的存儲時就要將已有的數據復制到新的空間。當對ArrayList進行插入或者刪除時,需要對數組進行復制、移動,代價比較高。因此ArrayList適合查找、遍歷,不適合插入或者刪除。

2、Vector和ArrayList一樣也是通過數組實現的,不同的是它支持線程同步但,即某一時刻只有一個線程訪問Vector。是線程同步需要很高的性能開銷,因此訪問它比訪問ArrayList慢。

3、LinkedList是用鏈表結構存儲數據的,很適合數據的動態插入和刪除,隨機訪問和遍歷速度比較慢。

總結:

1、ArrayList和Vector是通過數組實現的,而且當數組的大小不夠時,需要重新開辟空間,然后將元素拷貝過去。

2、ArrayList是異步的,屬于非線程安全。而Vector是同步的,屬于線程安全。但是大多數情況下不使用Vector,因為線程安全需要更多的內存開銷。

3、Vector在內存不夠時,自動增長為原來的1倍 。而ArrayList自動擴展為原來的為50%+1個


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河津市| 江门市| 公安县| 吉林省| 方城县| 福鼎市| 陵川县| 兴安县| 科技| 荣昌县| 霍城县| 扎赉特旗| 伊通| 容城县| 塔城市| 栾川县| 泉州市| 开鲁县| 车致| 阳春市| 多伦县| 彝良县| 鄂伦春自治旗| 青州市| 赞皇县| 彩票| 桐庐县| 仪陇县| 南雄市| 邹城市| 罗平县| 白朗县| 平山县| 嘉鱼县| 新干县| 黔西| 大连市| 库伦旗| 庆元县| 崇阳县| 铜鼓县|