日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java list子类_List集合的子类ArrayList、LinkedList、Vector

發(fā)布時間:2025/4/16 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java list子类_List集合的子类ArrayList、LinkedList、Vector 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

List:有序,有索引,可重復(fù)。

|--ArrayList:底層數(shù)據(jù)結(jié)構(gòu)是 數(shù)組結(jié)構(gòu).是線程不同步的(不安全的).查詢速度很快,但是增刪較慢。

構(gòu)造一個初始容量為 10 的空列表,當(dāng)放滿了10個元素后,以50%的長度加長集合容器的長度。

List 接口的大小可變數(shù)組的實(shí)現(xiàn),即:可以直接指定容量大小

|--LinkedList:底層數(shù)據(jù)結(jié)構(gòu)是 鏈表結(jié)構(gòu)。對元素的增刪速度很快。但是查詢速度很慢。線程是不同步的。

|--Vector:底層數(shù)據(jù)結(jié)構(gòu)也是數(shù)組結(jié)構(gòu),是線程同步的(安全的),效率低,被ArrayList替代了。1.2版本以后的集合都是不同步的

當(dāng)放滿了10個元素后,以100%的長度加長集合容器的長度。

1,首先看一下LinkedList(ArrayList不做介紹)

package cn.java.collection.list;

import java.util.Collection;

import java.util.Iterator;

import java.util.LinkedList;

public class LinkedListDemo {

/*

LinkedList中的一些方法在JDK1.6以后有了替代。

addFirst();

addLast();

JDK1.6:

offerFirst();

offerLast();

getFirst();如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

getLast();

JDK1.6:

peekFirst();如果鏈表中沒有元素,則返回null。

peekLast();

removeFirst();如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

removeLast();

JDK1.6:

pollFirst();如果鏈表中沒有元素,則返回null。

pollLast();

*/

public static void sop(Object obj)

{

System.out.println(obj);

}

public static void main(String[] args)

{

LinkedList link = new LinkedList();

//System.out.println("heihei……"+link.getFirst());//如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

System.out.println("heihei……"+link.peekFirst());//jdk1.6以后的方法,如果鏈表中沒有元素,返回null

//System.out.println("heihei……"+link.removeLast());//如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

System.out.println("heihei……"+link.pollLast());//jdk1.6以后的方法,如果鏈表中沒有元素,返回null

//鏈表的特有方法。添加.

link.addFirst("abc1");

link.addFirst("abc2");

link.addFirst("abc3");

link.addFirst("abc4");

//link.addLast("abc5");

for(int x=0; x

{

System.out.println("get:"+link.get(x));

}

/*for(int x=0; x

{

System.out.println("x="+x+"...size="+link.size());

System.out.println(link.removeFirst());

}*/

printColl(link);//這里也可以將Linkedlist作為一個參數(shù)傳遞給超類Collection,然后用Collection的獲取方法,如果使用了迭代器,則不能同時使用collection本身的增加,修改,刪除

while(!link.isEmpty())

{

System.out.println("remove:"+link.removeFirst());

}

System.out.println("----------------------");

link.add("weiba");

link.clear();

System.out.println(link);//打印出來為一個空的數(shù)組:[]

/*sop("getFirst:"+link.getFirst());//獲取元素,長度不改變。如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

sop("getLast:"+link.getLast());

sop("get size="+link.size());

sop("removeFirst:"+link.removeFirst());//獲取元素,但是元素被刪除,長度會改變。如果鏈表中沒有元素,獲取出現(xiàn)異常。NoSuchElementException

sop("removeLast:"+link.removeLast());

sop("remove size="+link.size());*/

}

public static void printColl(Collection coll)

{

Iterator it = coll.iterator();

while(it.hasNext())

{

//此處不能調(diào)用coll.remove(it.next());否則會報java.util.ConcurrentModificationException

System.out.println("haha"+it.next());

}

}

}

上面類中main方法執(zhí)行結(jié)果為:

heihei……null

heihei……null

get:abc4

get:abc3

get:abc2

get:abc1

hahaabc4

hahaabc3

hahaabc2

hahaabc1

remove:abc4

remove:abc3

remove:abc2

remove:abc1

----------------------

[]

2.vector集合

import java.util.Enumeration;

import java.util.Iterator;

import java.util.Vector;

/*

Enumeration 此接口的功能與 Iterator 接口的功能是重復(fù)的

Iterator將Enumeration給替代了,

原因:Enumeration接口的方法名稱過長。所以郁郁而終。

*/

public class VectorDemoAndEnumeration {

public static void main(String[] args) {

Vector v = new Vector();

v.addElement("abc1");

v.addElement("abc2");

v.addElement("abc3");

v.addElement("abc4");

for (int i = 0; i < v.size(); i++) {

System.out.println("通用獲取方式:"+v.get(i));

}

//第二種取出方式

Enumeration en = v.elements();

while(en.hasMoreElements()){

System.out.println(en.nextElement());

}

System.out.println("----------------");

//第三種取出方式

Iterator it = v.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

}

}

此類執(zhí)行結(jié)果為:

/*通用獲取方式:abc1

通用獲取方式:abc2

通用獲取方式:abc3

通用獲取方式:abc4

abc1

abc2

abc3

abc4

----------------

abc1

abc2

abc3

abc4*/

總結(jié)

以上是生活随笔為你收集整理的java list子类_List集合的子类ArrayList、LinkedList、Vector的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。