日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

區分Java中的ArrayList和LinkedList

瀏覽:22日期:2022-08-30 11:24:01

一:ArrayList和LinkedList的大致區別如下:

1.ArrayList是實現了基于動態數組的數據結構,ArrayList實現了長度可變的數組,在內存中分配連續的空間。遍歷元素和隨機訪問元素的效率比較高

2.LinkedList基于鏈表的數據結構, 插入、刪除元素時效率比較高 故:【插入、刪除操作頻繁時,可使用LinkedList來提高效率】LinkedList提供對頭部和尾部元素進行添加和刪除操作的方法,插入/刪除第一個和最后一個效率比較高;

3:ArrayList和LinkedList都是List接口的實現,都存儲一組不唯一,有序(插入順序)的對象, 對元素進行添加、刪除等操作[ 即:List的性質]

4.對于隨機訪問get和set,ArrayList覺得優于LinkedList,因為LinkedList要移動指針。

5.對于新增和刪除操作add和remove,LinedList比較占優勢,因為ArrayList要移動數據。

6:LinkedList比ArrayList更占內存

eg:(代碼示例01)----ArrayList與LinkedLis的數據添加和查找耗時對比

import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class HFSD { static final int N=50000; //添加5000條數據 static long timeList(List list){ //添加數據所需時間 long start=System.currentTimeMillis(); Object o = new Object(); for(int i=0;i<N;i++) { list.add(0, o); } return System.currentTimeMillis()-start; } static long readList(List list){ //查找數據所需時間 long start=System.currentTimeMillis(); for(int i=0,j=list.size();i<j;i++){ } return System.currentTimeMillis()-start; } static List addList(List list){ Object o = new Object(); for(int i=0;i<N;i++) { list.add(0, o); } return list; } public static void main(String[] args) { System.out.println('ArrayList添加'+N+'條耗時:'+timeList(new ArrayList())); System.out.println('LinkedList添加'+N+'條耗時:'+timeList(new LinkedList())); List list1=addList(new ArrayList<>()); List list2=addList(new LinkedList<>()); System.out.println('ArrayList查找'+N+'條耗時:'+readList(list1)); System.out.println('LinkedList查找'+N+'條耗時:'+readList(list2)); }

區分Java中的ArrayList和LinkedList

從以上結果,我i們可以看出 ArrayList更適合讀取數據,linkedList更多的時候添加或刪除數據。

ArrayList:內部是使用可??長數組實現的,所以是用get和set方法是花費少數時間的,但是如果插入元素和刪除元素,除非插入和刪除的位置都在表末尾,否則代碼開銷會很大,因為里面需要數組的移動。

LinkedList:是使用雙鏈表實現的,所以get會非常消耗資源,除非位置離頭部很近。但是插入和刪除元素花費少數時間。

二:ArrayList和LinkedList的共有方法(即List的方法):

區分Java中的ArrayList和LinkedList

eg:(代碼示例02)----ArrayList代碼示例

package JIhekuangjia006.ArrayList;/** * 小豬類 */public class Pig { private String name; private String sex; public Pig(String name,String sex){ this.name=name; this.sex=sex; } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setSex(String sex){ this.sex=sex; } public String getSex(){ return sex; }}

package JIhekuangjia006.ArrayList;import java.util.*;/** * 使用ArrayList集合進行操作數據 */public class Test1 { public static void main(String[] args) { //1.存儲小豬信息 Pig xiaojia=new Pig('小佳','母');//索引為0 Pig xiaolong=new Pig('小龍','公');//索引為1 Pig jiajia=new Pig('佳佳','女');//索引為2 Pig longlong=new Pig('龍龍','男');//索引為3(與數組相同,從0開始) //為小豬排序 List list=new ArrayList(); //直接將元素添加排序 list.add(xiaojia); list.add(jiajia); list.add(xiaolong); //將龍龍添加到索引為2的位置 list.add(2,longlong); //list.add(jiajia);//List 接口存儲一組不唯一,有序(插入順序)的對象 //2.獲得小豬的總數 //通過list.size()方法獲取元素的個數 list.size(); System.out.println('小豬的總數為'+list.size()); //3.逐條打印小豬信息 //方法一:for循環與get()方法配合實現遍歷 for(int i=0;i<list.size();i++){ Pig center=(Pig)list.get(i);//因為list.get()的返回值為Object的類型,所以需要強轉為Pig的類型 System.out.println(center.getName()+','+center.getSex()); } //方法二:通過迭代器Iterator實現遍歷// Iterator it=list.iterator();// while (it.hasNext()){// Pig center=(Pig)it.next();// System.out.println(center.getName()+','+center.getSex());// } System.out.println('*********************************************************'); //4.刪除小豬信息 //刪除第一只小豬,小佳 list.remove(0);//與數組下標相對應 //刪除指定小豬,小龍 list.remove(xiaolong); //將剩下的小豬信息進行輸出 System.out.println('刪除之后還有'+list.size()+'只小豬,n分別是:'); for(int i=0;i<list.size();i++){ /** * Object get(int index)返回指定索引位置處的元素。取出的元素是Object類型, * 使用前需要進行強制類型轉換 */ Pig center=(Pig)list.get(i);//所以需要強轉為Pig的類型 System.out.println(center.getName()+','+center.getSex()); } System.out.println('*******************************************************'); //5.判斷集合中是否包含指定小豬 if (list.contains(xiaojia)){//使用list.contains()方法進行判斷 System.out.println('集合中有小佳'); }else{ System.out.println('集合中沒有小佳'); } }}

測試運行結果如下:

區分Java中的ArrayList和LinkedList

三:LinkedList的特有方法:

區分Java中的ArrayList和LinkedList

eg:(代碼示例03)----LinkedList代碼示例:

package JIhekuangjia006.LinkedList;/** * 小豬類 */public class Pig { private String name; //昵稱 private String sex; //性別 public Pig(String name,String sex){ this.name=name; this.sex=sex; } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setSex(String sex){ this.sex=sex; } public String getSex(){ return sex; }}

package JIhekuangjia006.LinkedList;import java.util.Iterator;import java.util.LinkedList;/** * 使用LinkedList集合操作數據 */public class Test2 { public static void main(String[] args) { //1.存儲小豬信息 Pig xiaojia=new Pig('小佳','母');//索引為0 Pig xiaolong=new Pig('小龍','公');//索引為1 Pig jiajia=new Pig('佳佳','女');//索引為2 Pig longlong=new Pig('龍龍','男');//索引為3(與數組相同,從0開始) //為小豬排序 LinkedList list=new LinkedList(); //直接將元素添加排序 list.add(xiaolong); list.add(longlong); list.addFirst(jiajia);//將佳佳添加到第一個位置 list.addLast(xiaojia);//將小龍添加到最后一個位置 //list.add(jiajia);//List 接口存儲一組不唯一,有序(插入順序)的對象 //2.獲得小豬的總數 //通過list.size()方法獲取元素的個數 list.size(); System.out.println('小豬的總數為'+list.size()); //3.逐條打印小豬的信息 //方法一:通過迭代器Iterator實現遍歷 Iterator it=list.iterator(); while (it.hasNext()){ Pig center=(Pig)it.next(); System.out.println(center.getName()+','+center.getSex()); } //方法二:for循環與get()方法配合實現遍歷// for(int i=0;i<list.size();i++){// Pig pig=(Pig)list.get(i);// System.out.println(pig.getName()+','+pig.getSex());// } System.out.println('************************************************'); //4. //獲取第一只小豬的信息 Pig center=(Pig)list.getFirst(); System.out.println('第一條狗狗信息是:'+center.getName()+','+center.getSex()); //獲取最后一只小豬的信息 Pig center1=(Pig)list.getLast(); System.out.println('最后一條狗狗信息是:'+center1.getName()+','+center1.getSex()); System.out.println('*****************************************************'); //5.刪除第一只小豬和最后一只小豬 list.removeFirst(); list.removeLast(); System.out.println('*****************************************************'); //6.輸出剩下小豬的信息 System.out.println('剩下還有'+list.size()+'只小豬,n分別是:'); for(int i=0;i<list.size();i++){ Pig pig=(Pig)list.get(i); System.out.println(pig.getName()+','+pig.getSex()); } //7.判斷集合中是否存在小佳 if(list.contains(xiaojia)){ System.out.println('集合中存在小佳'); }else{ System.out.println('集合中不存在小佳'); } }}

測試運行結果如下:

區分Java中的ArrayList和LinkedList

以上就是區分Java中的ArrayList和LinkedList的詳細內容,更多關于Java中ArrayList和LinkedList的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产h片在线观看| 精品国产亚洲一区二区三区在线 | 亚洲毛片网站| 中文字幕成人| 视频一区视频二区中文字幕| 国产精品videossex| 国产精品欧美在线观看| 99视频精品全国免费| 欧美亚洲一区二区三区| 日本免费在线视频不卡一不卡二| 国产精品精品国产一区二区| 视频一区在线视频| 麻豆国产精品| 亚洲一区二区成人| 免播放器亚洲一区| 91精品视频一区二区| 一区二区三区四区日本视频| 日韩在线网址| 亚洲18在线| 91欧美日韩在线| 亚洲欧洲美洲国产香蕉| 亚洲香蕉视频| 91精品亚洲| 亚洲3区在线| 欧美亚洲tv| 免费污视频在线一区| 视频国产精品| 国产精品白丝久久av网站| 婷婷成人在线| 欧美日本不卡高清| 国产精品久久久网站| 国产剧情一区| 亚洲少妇在线| 91精品尤物| 精品国产第一福利网站| 国内在线观看一区二区三区| 亚洲v在线看| 在线国产一区| 日韩一区二区三区精品| 精品国产乱码久久久| 国产精品mv在线观看| 日韩中文字幕亚洲一区二区va在线| 亚洲+小说+欧美+激情+另类| 日韩精品亚洲专区在线观看| 亚洲v在线看| 国产精品一卡| 日韩国产在线观看| 亚洲日产av中文字幕| 亚洲日本三级| 人人香蕉久久| 亚洲精品成人一区| 亚洲欧洲日本mm| 久久久久国产精品一区三寸| 午夜国产精品视频免费体验区| 亚洲深深色噜噜狠狠爱网站 | 欧美日韩视频免费看| 美女视频黄免费的久久| 国产99亚洲| 国产精品一卡| 播放一区二区| 欧美在线不卡| 久久精品av| 国产精品magnet| 蜜桃伊人久久| 中文字幕在线视频久| 亚洲另类黄色| 久久精品亚洲人成影院| 国产日本精品| 午夜在线视频一区二区区别| 国产精品nxnn| 蜜臀va亚洲va欧美va天堂| 久久久久久色 | 欧美日韩99| 欧美日韩视频免费观看| 日韩不卡在线观看日韩不卡视频| 国产精品呻吟| 欧美经典一区| 亚洲一二av| 国产专区一区| 欧美a在线观看| 丝袜美腿高跟呻吟高潮一区| 色老板在线视频一区二区| 国产精品一区二区精品视频观看 | 青青草国产成人99久久| 99久久99久久精品国产片果冰| 久久久久久美女精品| 欧美精品影院| 麻豆成人在线| 香蕉人人精品| 精品网站999| 日韩av中文字幕一区| 婷婷成人基地| 久久久蜜桃一区二区人| 精品国产亚洲一区二区三区| 欧美日韩亚洲一区三区| 日韩一区二区久久| 在线亚洲人成| 精品国产一区二| 国产免费av国片精品草莓男男| 精品九九久久| **爰片久久毛片| 亚洲精品国产精品粉嫩| 六月婷婷一区| 欧美成人国产| 啪啪国产精品| 亚洲精品一区三区三区在线观看| 日韩午夜一区| 日韩大片免费观看| 红杏一区二区三区| 国产精品99久久久久久董美香| www.com.cn成人| 91精品国产经典在线观看| 蜜臀精品一区二区三区在线观看 | 蜜臀av在线播放一区二区三区| 亚洲美女91| 99精品视频在线观看免费播放| 99国产精品视频免费观看一公开| 免费国产自线拍一欧美视频| 秋霞国产精品| 午夜久久中文| 日韩国产一区二区| 美女网站视频一区| 秋霞国产精品| 激情综合网站| 性欧美长视频| 免费视频一区二区| 亚洲ab电影| 四虎精品永久免费| 日韩在线网址| 国产免费av一区二区三区| 国产精品一区二区精品| 国产日韩高清一区二区三区在线| 日本韩国欧美超级黄在线观看| 蜜桃av一区| 亚洲欧美日韩视频二区| 国产视频欧美| 免费一级片91| 91成人在线网站| 精品视频在线观看网站| 精品99在线| 日本在线高清| 黄色成人在线网址| 久久亚洲风情| 日韩激情啪啪| 九九99久久精品在免费线bt| 色偷偷色偷偷色偷偷在线视频| 日韩国产欧美在线视频| 在线观看一区| 亚洲日韩中文字幕一区| 欧美日韩xxxx| sm久久捆绑调教精品一区| 亚洲视频综合| 婷婷综合一区| 欧美国产精品| 99久久亚洲精品蜜臀| 久久99伊人| 国产探花在线精品一区二区| 久久精品五月| 国内精品福利| 亚久久调教视频| 精品国产美女a久久9999| 久久精品国产www456c0m| 视频一区二区三区中文字幕| 久久精品凹凸全集| 97精品一区| 欧美专区在线| 欧美极品一区二区三区| 欧美一区二区三区激情视频| 一区二区三区四区日韩| 欧美成人精品一级| 国内激情久久| 国产日韩在线观看视频| 国产日韩电影| 免费看日韩精品| 国产一区二区三区四区五区| 亚洲精品99| 国产情侣一区| 91成人超碰| 欧美精品aa| 9色国产精品| 久久久国产精品入口麻豆| 欧美va天堂在线| 国产另类在线| 在线亚洲自拍| 捆绑调教美女网站视频一区| 99国内精品| 国产成人久久精品麻豆二区 | 欧美久久一区二区三区| 久久精品色播| 亚洲色图网站| 蜜桃精品在线| 国产视频一区二| 久久九九99| 国产精品视频一区二区三区四蜜臂| 久久国产视频网| 欧美gv在线| 91成人小视频| 亚洲欧美日韩综合国产aⅴ| 麻豆久久久久久| 男人的天堂久久精品|