日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java list用法_Java List 用法详解及实例分析

發(fā)布時(shí)間:2023/11/29 java 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java list用法_Java List 用法详解及实例分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java List 用法詳解及實(shí)例分析

Java中可變數(shù)組的原理就是不斷的創(chuàng)建新的數(shù)組,將原數(shù)組加到新的數(shù)組中,下文對(duì)Java List用法做了詳解。

List:元素是有序的(怎么存的就怎么取出來,順序不會(huì)亂),元素可以重復(fù)(角標(biāo)1上有個(gè)3,角標(biāo)2上也可以有個(gè)3)因?yàn)樵摷象w系有索引

ArrayList:底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu)(數(shù)組長(zhǎng)度是可變的百分之五十延長(zhǎng))(特點(diǎn)是查詢很快,但增刪較慢)線程不同步

LinkedList:底層的數(shù)據(jù)結(jié)構(gòu)是鏈表結(jié)構(gòu)(特點(diǎn)是查詢較慢,增刪較快)

Vector:底層是數(shù)組數(shù)據(jù)結(jié)構(gòu) 線程同步(數(shù)組長(zhǎng)度是可變的百分之百延長(zhǎng))(無論查詢還是增刪都很慢,被ArrayList替代了)

List:特有的方法,凡是可以操作角標(biāo)的方法都是該體系特有的方法

boolean add(int index, E element)

boolean addAll(index,Collection)

public static void List_add(){

ArrayList a1 = new ArrayList();

a1.add("java");

a1.add("php");//List集合中的元素可以重復(fù)

a1.add(".net");

System.out.println("原集合:"+a1);

a1.add(1, "Flash");

a1.add(0, "ps");

System.out.println(a1);

ArrayList a2 = new ArrayList();

a2.add("javascript");

a2.add("3dMax");

a2.add("IBM");

a1.addAll(0, a2);

System.out.println(a1);

}

刪除指定位置的元素

boolean remove(int index)

public static void List_remove(){

ArrayList a1 = new ArrayList();

a1.add("javascript");

a1.add("php");

a1.add("flash");

System.out.println("原集合:"+a1);

a1.remove(0);

System.out.println(a1);

}

修改指定角標(biāo)的元素? set(int index, E element)? 返回的是修改的那個(gè)元素

public static void List_set() {

ArrayList a1 = new ArrayList();

a1.add("javascript");

a1.add("php");

a1.add(".net");

System.out.println("原集合:"+a1);

a1.set(1, "falsh");

System.out.println(a1);

}

get(int index) 返回列表中指定位置的元素

subList(int fromIndex, int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之間的部分元素。

public static void List_get() {

ArrayList a1 = new ArrayList();

a1.add("java");

a1.add("php");

a1.add("flash");

System.out.println(a1.get(0));//獲取指定角標(biāo)的元素,有了該方法就可以遍歷該集合中的所有元素

System.out.println(a1.subList(1, 3));//獲取集合中某一部分的元素,包含頭不包含尾

}

List集合特有的迭代器:ListIterator(是Iterator的子接口)

注意:

在迭代時(shí),是不可以通過集合對(duì)象的方法操作集合中的元素因?yàn)闀?huì)發(fā)生ConcurrentModificationException異常(并發(fā)異常)所以,在迭代器時(shí),只能用迭代器的方法造作元素因?yàn)镮terator方法是有限的所以只能對(duì)元素進(jìn)行判斷,取出,刪除的操作如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator 該接口只能通過List集合的listIterator方法獲取

public class ListIteratorDemo {

public static void main(String[] args) {

ArrayList a1 = new ArrayList();

a1.add("java01");

a1.add("java02");

a1.add("java03");

a1.add("java04");

System.out.println("原集合是:"+a1);

/*在迭代過程中準(zhǔn)備添加或者刪除元素

Iterator it = al.iterator();

while (it.hasNext()){

Object obj = it.next();

if (obj.equals("java02"))

//al.add("java008");//會(huì)出現(xiàn)并發(fā)異常,因?yàn)榈髡诓僮骷?#xff0c;不能再用集合的方法操作集合了

it.remove();//將java02的引用從集合中刪除了

System.out.println("obj:"+obj);

}

*/

//只有List的listIterator有增,刪,改,查這些功能,因?yàn)橹挥蠰ist有索引

ListIterator li = a1.listIterator();

while (li.hasNext()){

if(li.next().equals("java02"))

//li.add("java009");

li.set("java006");

}

}

}

Vector:枚舉就是Vector特有的取出方式,跟迭代器很像(其實(shí)枚舉和迭代是一樣的) 已經(jīng)被迭代器取代

public class VectorDemo {

public static void main(String[] args) {

Vector v = new Vector();

v.add("java01");

v.add("java02");

v.add("java03");

v.add("java04");

for(Enumeration en = v.elements();en.hasMoreElements();){

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

}

}

}

LinkedList:

特有方法:

addFirst();在頭部添加元素

addLast();在尾部添加元素

getFirst(); getLast();

獲取元素但不刪除元素。如果集合中沒有元素,會(huì)出現(xiàn)NoSuchElementException

removeFirst();?? removeLast();

獲取元素但是刪除元素。如果集合中沒有元素,會(huì)出現(xiàn)NoSuchElementException

在JDK1.6出現(xiàn)了替代方法

offerFirst(); offerLast();

peekFirst(); peekLast(); 獲取元素,但是元素不被刪除。如果集合中沒有元素,會(huì)返回null

pollFirst(); pollLast(); 獲取元素,但是元素被刪除。如果集合中沒有元素,會(huì)返回null

public class LinkedListDemo {

public static void main(String[] args) {

LinkedList link = new LinkedList();

link.add("java01");

link.add("java02");

link.add("java03");

link.add("java04");

while(!link.isEmpty()){

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

}

}

}

以上就是對(duì)java list用法的實(shí)例詳解,本站關(guān)于java 的開發(fā)文章還有很多,希望大家搜索參考,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

總結(jié)

以上是生活随笔為你收集整理的java list用法_Java List 用法详解及实例分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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