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

您的位置:首頁技術(shù)文章
文章詳情頁

區(qū)分Java中的ArrayList和LinkedList

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

一:ArrayList和LinkedList的大致區(qū)別如下:

1.ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),ArrayList實(shí)現(xiàn)了長度可變的數(shù)組,在內(nèi)存中分配連續(xù)的空間。遍歷元素和隨機(jī)訪問元素的效率比較高

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

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

4.對于隨機(jī)訪問get和set,ArrayList覺得優(yōu)于LinkedList,因?yàn)長inkedList要移動(dòng)指針。

5.對于新增和刪除操作add和remove,LinedList比較占優(yōu)勢,因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。

6:LinkedList比ArrayList更占內(nèi)存

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

import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class HFSD { static final int N=50000; //添加5000條數(shù)據(jù) static long timeList(List list){ //添加數(shù)據(jù)所需時(shí)間 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){ //查找數(shù)據(jù)所需時(shí)間 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+'條耗時(shí):'+timeList(new ArrayList())); System.out.println('LinkedList添加'+N+'條耗時(shí):'+timeList(new LinkedList())); List list1=addList(new ArrayList<>()); List list2=addList(new LinkedList<>()); System.out.println('ArrayList查找'+N+'條耗時(shí):'+readList(list1)); System.out.println('LinkedList查找'+N+'條耗時(shí):'+readList(list2)); }

區(qū)分Java中的ArrayList和LinkedList

從以上結(jié)果,我i們可以看出 ArrayList更適合讀取數(shù)據(jù),linkedList更多的時(shí)候添加或刪除數(shù)據(jù)。

ArrayList:內(nèi)部是使用可??長數(shù)組實(shí)現(xiàn)的,所以是用get和set方法是花費(fèi)少數(shù)時(shí)間的,但是如果插入元素和刪除元素,除非插入和刪除的位置都在表末尾,否則代碼開銷會(huì)很大,因?yàn)槔锩嫘枰獢?shù)組的移動(dòng)。

LinkedList:是使用雙鏈表實(shí)現(xiàn)的,所以get會(huì)非常消耗資源,除非位置離頭部很近。但是插入和刪除元素花費(fèi)少數(shù)時(shí)間。

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

區(qū)分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集合進(jìn)行操作數(shù)據(jù) */public class Test1 { public static void main(String[] args) { //1.存儲(chǔ)小豬信息 Pig xiaojia=new Pig('小佳','母');//索引為0 Pig xiaolong=new Pig('小龍','公');//索引為1 Pig jiajia=new Pig('佳佳','女');//索引為2 Pig longlong=new Pig('龍龍','男');//索引為3(與數(shù)組相同,從0開始) //為小豬排序 List list=new ArrayList(); //直接將元素添加排序 list.add(xiaojia); list.add(jiajia); list.add(xiaolong); //將龍龍?zhí)砑拥剿饕秊?的位置 list.add(2,longlong); //list.add(jiajia);//List 接口存儲(chǔ)一組不唯一,有序(插入順序)的對象 //2.獲得小豬的總數(shù) //通過list.size()方法獲取元素的個(gè)數(shù) list.size(); System.out.println('小豬的總數(shù)為'+list.size()); //3.逐條打印小豬信息 //方法一:for循環(huán)與get()方法配合實(shí)現(xiàn)遍歷 for(int i=0;i<list.size();i++){ Pig center=(Pig)list.get(i);//因?yàn)閘ist.get()的返回值為Object的類型,所以需要強(qiáng)轉(zhuǎn)為Pig的類型 System.out.println(center.getName()+','+center.getSex()); } //方法二:通過迭代器Iterator實(shí)現(xiàn)遍歷// 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);//與數(shù)組下標(biāo)相對應(yīng) //刪除指定小豬,小龍 list.remove(xiaolong); //將剩下的小豬信息進(jìn)行輸出 System.out.println('刪除之后還有'+list.size()+'只小豬,n分別是:'); for(int i=0;i<list.size();i++){ /** * Object get(int index)返回指定索引位置處的元素。取出的元素是Object類型, * 使用前需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換 */ Pig center=(Pig)list.get(i);//所以需要強(qiáng)轉(zhuǎn)為Pig的類型 System.out.println(center.getName()+','+center.getSex()); } System.out.println('*******************************************************'); //5.判斷集合中是否包含指定小豬 if (list.contains(xiaojia)){//使用list.contains()方法進(jìn)行判斷 System.out.println('集合中有小佳'); }else{ System.out.println('集合中沒有小佳'); } }}

測試運(yùn)行結(jié)果如下:

區(qū)分Java中的ArrayList和LinkedList

三:LinkedList的特有方法:

區(qū)分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集合操作數(shù)據(jù) */public class Test2 { public static void main(String[] args) { //1.存儲(chǔ)小豬信息 Pig xiaojia=new Pig('小佳','母');//索引為0 Pig xiaolong=new Pig('小龍','公');//索引為1 Pig jiajia=new Pig('佳佳','女');//索引為2 Pig longlong=new Pig('龍龍','男');//索引為3(與數(shù)組相同,從0開始) //為小豬排序 LinkedList list=new LinkedList(); //直接將元素添加排序 list.add(xiaolong); list.add(longlong); list.addFirst(jiajia);//將佳佳添加到第一個(gè)位置 list.addLast(xiaojia);//將小龍?zhí)砑拥阶詈笠粋€(gè)位置 //list.add(jiajia);//List 接口存儲(chǔ)一組不唯一,有序(插入順序)的對象 //2.獲得小豬的總數(shù) //通過list.size()方法獲取元素的個(gè)數(shù) list.size(); System.out.println('小豬的總數(shù)為'+list.size()); //3.逐條打印小豬的信息 //方法一:通過迭代器Iterator實(shí)現(xiàn)遍歷 Iterator it=list.iterator(); while (it.hasNext()){ Pig center=(Pig)it.next(); System.out.println(center.getName()+','+center.getSex()); } //方法二:for循環(huán)與get()方法配合實(shí)現(xiàn)遍歷// 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('集合中不存在小佳'); } }}

測試運(yùn)行結(jié)果如下:

區(qū)分Java中的ArrayList和LinkedList

以上就是區(qū)分Java中的ArrayList和LinkedList的詳細(xì)內(nèi)容,更多關(guān)于Java中ArrayList和LinkedList的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩一区二区高清| 国产福利片在线观看| 亚洲欧洲美洲国产香蕉| 麻豆视频在线看| 婷婷综合一区| 在线一区电影| 国产精品二区不卡| 久久久久久亚洲精品美女| 日本中文字幕不卡| 中文字幕在线官网| 性色一区二区| 欧美~级网站不卡| 国产aⅴ精品一区二区三区久久| 中文字幕一区二区三区四区久久 | 欧美精品黄色| 久久97久久97精品免视看秋霞| 欧美有码在线| 中文字幕成人| 亚洲一区二区三区无吗| 国产高清一区| 亚洲精品123区| 奇米狠狠一区二区三区| 久久久久免费av| 欧美日韩在线观看首页| 视频精品一区| 亚洲一区不卡| 正在播放日韩精品| 粉嫩av一区二区三区四区五区| 国产精品久久久久久久免费软件| 日韩av网站在线免费观看| 国产精品毛片aⅴ一区二区三区| 奇米亚洲欧美| 亚洲手机在线| 国产精品亚洲片在线播放| 激情久久中文字幕| 国内精品亚洲| 日韩午夜在线| 久久精品亚洲| 日韩在线网址| 欧美日韩国产在线观看网站| 国产精品一区二区三区av| 久久黄色影院| 国产91在线播放精品| 日韩欧美三区| 免费看欧美美女黄的网站| 99精品视频在线观看免费播放| 国产精品亚洲产品| 99视频精品| 99热免费精品| 久久人人97超碰国产公开结果| 国产成人精品一区二区三区在线| 中文亚洲欧美| 视频福利一区| 色爱av综合网| 综合日韩av| 麻豆成全视频免费观看在线看| 国产欧美亚洲一区| 日韩中文字幕无砖| 欧美片网站免费| 蜜桃视频在线观看一区二区| 国产黄色一区| 欧美一区91| 日韩一二三区在线观看| 欧美亚洲专区| 久久国产精品成人免费观看的软件| 国产精品久久久久久久免费软件| 久久福利在线| 综合一区二区三区| 久久超碰99| 青青草国产精品亚洲专区无| 日韩欧美二区| 欧美激情网址| 日本中文字幕一区二区视频 | 久久精品欧美一区| 伊人久久av| 国产成人精品一区二区三区免费 | 亚洲欧美日韩视频二区| 日韩精品网站| 久久精品亚洲| 日韩美女国产精品| 久久久久99| 99久久精品网| 精品欧美久久| 国产在线不卡| 欧美丰满日韩| 不卡福利视频| 欧美国产日韩电影| 成人午夜在线| 久久久久久久久99精品大| 国产aa精品| 久久中文精品| 日韩av字幕| 99视频精品| 青青草精品视频| 久久亚洲黄色| 黄色不卡一区| 亚洲精品小说| 欧美日韩国产传媒| 色婷婷综合网| 免费av一区| 日韩欧美激情| 国产一区日韩一区| 久久不见久久见免费视频7| 99视频精品全部免费在线视频| 樱桃成人精品视频在线播放| 快she精品国产999| 日韩1区2区日韩1区2区| 欧美午夜不卡影院在线观看完整版免费| 国产精品探花在线观看| 亚洲永久精品唐人导航网址| 国产videos久久| 免费亚洲婷婷| 日本午夜精品一区二区三区电影| 国产精品高清一区二区| 激情综合亚洲| 久久久久免费| 日韩精品91亚洲二区在线观看| 免费日韩一区二区| 韩日一区二区三区| 中文字幕系列一区| 国产精品日本一区二区三区在线| 色综合五月天| 麻豆传媒一区二区三区| 欧美综合二区| 国精品一区二区三区| 日本黄色精品| 欧美激情视频一区二区三区免费 | 亚洲福利免费| 日本亚洲最大的色成网站www| 国产96在线亚洲| 91综合网人人| 国产成人精品一区二区三区视频 | 日韩一区二区三免费高清在线观看 | 日韩高清中文字幕一区二区| 麻豆精品国产91久久久久久| 精品亚洲a∨一区二区三区18| 久久精品99国产精品| 久久精品影视| 精品精品99| 久久福利在线| 国产精品色婷婷在线观看| 久久精品1区| 久久伊人久久| 日韩**一区毛片| 欧美日本不卡| 日韩福利视频网| 欧美日韩精品一区二区三区在线观看| 日韩精品一区二区三区中文字幕| 亚洲久久在线| 麻豆精品新av中文字幕| 国产一区二区三区探花| 久久久亚洲一区| 免费观看久久av| 爽好多水快深点欧美视频| 欧美三区不卡| 影院欧美亚洲| 亚洲免费一区二区| 欧美在线黄色| 久久精品青草| 91嫩草精品| 日韩精品看片| 欧美亚洲综合视频| 欧美日韩三区| 国产一区2区| 偷拍亚洲精品| 久久久蜜桃一区二区人| 国产精品色网| 国产在线视频欧美一区| 日韩av网站在线免费观看| 国产精品视频一区二区三区综合| 欧美日韩精品免费观看视频完整| 亚洲我射av| 日韩天堂在线| 久久亚洲黄色| 日韩精彩视频在线观看| 播放一区二区| 日本午夜大片a在线观看| 一区二区不卡| 久久激情婷婷| 久久这里只有| 四虎精品永久免费| 尤物在线精品| 欧美在线观看视频一区| 国产免费久久| 亚洲精品看片| 99精品在线| 中文字幕一区二区三区日韩精品| 国产精品美女午夜爽爽| 亚洲小说春色综合另类电影| 热久久免费视频| 蘑菇福利视频一区播放| 国产韩日影视精品| 视频一区在线播放| 久久国产精品99国产| 麻豆网站免费在线观看| 欧美日本不卡| 日韩精品久久理论片| 欧美va天堂| 亚洲激情不卡| 国内精品福利|