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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

集合框架(中)

發(fā)布時(shí)間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合框架(中) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/* Collection|--List:元素是有序的,元素可以重復(fù)。因?yàn)樵摷象w系有索引。|--ArrayList:底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu)。特點(diǎn):查詢速度很快。但是增刪稍慢。線程不同步。|--LinkedList:底層使用的鏈表數(shù)據(jù)結(jié)構(gòu)。特點(diǎn):增刪速度很快,查詢稍慢。線程不同步。|--Vector:底層是數(shù)組數(shù)據(jù)結(jié)構(gòu)。線程同步。被ArrayList替代了。因?yàn)樾实汀--Set:元素是無序,元素不可以重復(fù)。、List:特有方法。凡是可以操作角標(biāo)的方法都是該體系特有的方法。增add(index,element);addAll(index,Collection);刪remove(index);改set(index,element); 查get(index):subList(from,to);listIterator();int indexOf(obj):獲取指定元素的位置。ListIterator listIterator();List集合特有的迭代器。ListIterator是Iterator的子接口。在迭代時(shí),不可以通過集合對(duì)象的方法操作集合中的元素。 因?yàn)闀?huì)發(fā)生ConcurrentModificationException異常。所以,在迭代器時(shí),只能用迭代器的方法操作元素,可是Iterator方法是有限的, 只能對(duì)元素進(jìn)行判斷,取出,刪除的操作, 如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。該接口只能通過List集合的listIterator方法獲取。*/import java.util.*; class ListDemo {public static void sop(Object obj){System.out.println(obj);}public static void method(){ArrayList al = new ArrayList();//添加元素al.add("java01");al.add("java02");al.add("java03");sop("原集合是:"+al);//在指定位置添加元素。al.add(1,"java09");//刪除指定位置的元素。//al.remove(2);//修改元素。//al.set(2,"java007");//通過角標(biāo)獲取元素。sop("get(1):"+al.get(1));sop(al);//獲取所有元素。for(int x=0; x<al.size(); x++){System.out.println("al("+x+")="+al.get(x));}Iterator it = al.iterator();while(it.hasNext()){sop("next:"+it.next());}//通過indexOf獲取對(duì)象的位置。sop("index="+al.indexOf("java02"));List sub = al.subList(1,3);sop("sub="+sub);}public static void main(String[] args) {//演示列表迭代器。ArrayList al = new ArrayList();//添加元素al.add("java01");al.add("java02");al.add("java03");sop(al);ListIterator li = al.listIterator();//sop("hasPrevious():"+li.hasPrevious());while(li.hasNext()){Object obj = li.next();if(obj.equals("java02"))//li.add("java009");li.set("java006");}while(li.hasPrevious()){sop("pre::"+li.previous());}//sop("hasNext():"+li.hasNext());//sop("hasPrevious():"+li.hasPrevious());sop(al);/*//在迭代過程中,準(zhǔn)備添加或者刪除元素。Iterator it = al.iterator();while(it.hasNext()){Object obj = it.next();if(obj.equals("java02"))//al.add("java008");it.remove();//將java02的引用從集合中刪除了。sop("obj="+obj);}sop(al);*/} }/* LinkedList:特有方法: addFirst(); addLast();getFirst(); getLast(); 獲取元素,但不刪除元素。如果集合中沒有元素,會(huì)出現(xiàn)NoSuchElementExceptionremoveFirst(); removeLast(); 獲取元素,但是元素被刪除。如果集合中沒有元素,會(huì)出現(xiàn)NoSuchElementException在JDK1.6出現(xiàn)了替代方法。offerFirst(); offerLast();peekFirst(); peekLast(); 獲取元素,但不刪除元素。如果集合中沒有元素,會(huì)返回null。pollFirst(); pollLast(); 獲取元素,但是元素被刪除。如果集合中沒有元素,會(huì)返回null。*/class LinkedListDemo {public static void main(String[] args) {LinkedList link = new LinkedList();link.addLast("java01");link.addLast("java02");link.addLast("java03");link.addLast("java04");//sop(link); // sop(link.getFirst()); // sop(link.getFirst());//sop(link.getLast());//sop(link.removeFirst());//sop(link.removeFirst());//sop("size="+link.size());while(!link.isEmpty()){sop(link.removeLast());}}public static void sop(Object obj){System.out.println(obj);} }/* 使用LinkedList模擬一個(gè)堆棧或者隊(duì)列數(shù)據(jù)結(jié)構(gòu)。堆棧:先進(jìn)后出 如同一個(gè)杯子。 隊(duì)列:先進(jìn)先出 First in First out FIFO 如同一個(gè)水管。*/import java.util.*; class DuiLie extends LinkedList {public LinkedList link;DuiLie(){link =new LinkedList();}public void myAdd(Object obj){link.offerFirst(obj);}public Object myGet(){return link.pollLast();}public boolean isNull(){return link.isEmpty();} }class DuiZhan extends DuiLie {DuiZhan(){super();}public void myAdd(Object obj){link.offerLast(obj);} } class LinkedListTest {public static void main(String[] args) {DuiLie dl =new DuiLie();dl.myAdd("beijing");dl.myAdd("nanjing");dl.myAdd("dongjing");DuiLie dz =new DuiZhan();/*dz.myAdd("na");dz.myAdd("ran");dz.myAdd("li");*/dz=dl;//疑惑:用賦值的這種方式調(diào)用的結(jié)果和獨(dú)立定義結(jié)果為何不同呢?sop("dz:"+dz.myGet());for (Iterator it =dz.iterator();it.hasNext() ; ){sop(it.next());}while(!dl.isNull()){sop(dl.myGet());}}public static void sop(Object obj){System.out.println(obj);} }

  

轉(zhuǎn)載于:https://www.cnblogs.com/lfjean/p/3654825.html

總結(jié)

以上是生活随笔為你收集整理的集合框架(中)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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