?數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)內(nèi)存或磁盤中存儲、組織數(shù)據(jù)的方式。常用的數(shù)據(jù)結(jié)構(gòu)如數(shù)組、鏈表、棧、隊(duì)列、樹等等。今天和大家分享和交流一下java語言中常用的數(shù)據(jù)結(jié)構(gòu)如數(shù)組、List(列表)、Map(鍵值對)、Set及其繼承類庫,簡述它們的特點(diǎn)及項(xiàng)目開發(fā)中常見的用途。
1.判斷是否為空
大家都知道判斷字符串是否為空:
str == null || "".euqals(str) || str.length <= 0 || str.isEmpty(),
首先需要判斷在內(nèi)存中是否有指向,即是否是一個對象,然后判斷該字符串是否為空字符串。
同理:
判斷數(shù)組為空:arr ==null || arr.length ==0
同理不為空:arr != null && arr.length>0
判斷List為空:null == list || list.size() == 0 || list.isEmpty()
判斷List不為空:list != null && !list.isEmpty()
?
判斷Map為空:null == map || map.size() == 0 || map.siEmpty()
判斷Map不為空:map != null && !map.isEmpty()
判斷Set為空:null == set || set.size() == 0 || set.siEmpty()
判斷Set不為空:set != null && !set.isEmpty()
2.常用類庫
(一)List是元素有序、可重復(fù)、可為null的集合;
①ArrayList?
繼承AbstractList實(shí)現(xiàn)了List、RandomAccess、Cloneable、Serializble等接口。
特性:本質(zhì)是一個數(shù)組;可被隨機(jī)訪問、能被克隆、支持序列化、容量可以動態(tài)增長、非線程安全。
②LinkedList?
繼承AbstractSequentialList實(shí)現(xiàn)了List、Deque、Cloneable、Serializable等接口。
特性:本質(zhì)是一個雙向鏈表;支持序列化,能被克隆,非線程安全的。
③Vector?
繼承AbstractList實(shí)現(xiàn)了List、RandomAccess、Cloneable等接口。
特性:本質(zhì)是一個隊(duì)列;可被隨機(jī)訪問,能被克隆,且線程安全。
④Stack?
繼承于Vector,讀者可參考上
特性:本質(zhì)是一個棧,具有"先進(jìn)后出"的特性。