新聞中心
本篇內(nèi)容主要講解“java中使用集合類需要注意哪些細(xì)節(jié)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java中使用集合類需要注意哪些細(xì)節(jié)”吧!
成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10余年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如護(hù)欄打樁機(jī)等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致稱譽(yù)。
1、迭代器:
迭代器的next方法是自動(dòng)向下取元素,要避免出現(xiàn)NoSuchElementException。
也就是在迭代循環(huán)中調(diào)用一次next方法一次就要hasNext判斷一次,比如語(yǔ)句。
sop(it.next()+"..."+it.next())會(huì)發(fā)生上述異常。迭代器的next方法返回值類型是Object,所以要記得類型轉(zhuǎn)換,應(yīng)用泛型后就不用強(qiáng)轉(zhuǎn)。
2、List集合:
List集合里面的元素因?yàn)槭菐Ы菢?biāo),所以List集合里面的元素都是有序的,另外List集合可以包含重復(fù)元素,也可以包含null。
List集合有迭代器Iterator,還有一個(gè)特有迭代器列表ListIterator。
List集合中判斷元素是否相同都是用equals方法,無論contains、remove都依賴equals方法,比如往ArrayList集合里面存放學(xué)生,同名同年齡視為同一個(gè)人,此時(shí)就需要在學(xué)生類復(fù)寫Object類里面的equals方法(非常重要!!!要注意!!)。
3、Set集合:
Set接口里面存放的是元素是無序的,不可以有重復(fù)元素,可以包含null。
Set集合只有一種取出方式,就是迭代器Iterator。
Set集合功能和Collection是一致的,沒有特殊方法。
3.1、HashSet:
集合里面存放的元素是無序的,唯一的。
底層數(shù)據(jù)結(jié)構(gòu)是哈希表,哈希表結(jié)構(gòu)的數(shù)據(jù)都是無序的,哈希表結(jié)構(gòu)的操作效率都高效。
線程不同步。
保證元素唯一性的原理是:通過復(fù)寫hashCode和equals方法。
如果兩元素的hashCode值相同,則繼續(xù)判斷兩元素equals是否為真。
如果兩元素的hashCode值不同,則不會(huì)調(diào)用equals方法。
當(dāng)我們往HashSet集合存放自定義的元素時(shí)(比如學(xué)生對(duì)象),通常都要復(fù)寫hashCode和equals方法,而且hashCode和equals方法不通過我們調(diào)用,HashSet集合底層內(nèi)部自己調(diào)用,自己拿元素去比較。
3.2、TreeSet
TreeSet集合可以對(duì)存放的元素進(jìn)行排序,彌補(bǔ)了Set集合元素?zé)o序的缺點(diǎn),且元素是唯一的。
底層數(shù)據(jù)結(jié)構(gòu)是二叉樹,二叉樹結(jié)構(gòu)都是有序的。
線程不同步。
TreeSet集合要求往集合里存放的元素自身具備比較性,否則會(huì)報(bào)錯(cuò)。
TreeSet集合保證元素唯一性的依據(jù)是:通過compareTo或者compare方法中的來保證元素的唯一性。TreeSet排序的第一種方式:讓元素自身具備比較性,
定義元素類實(shí)現(xiàn)Compareble接口,覆蓋compare方法,此方式是元素的自然順序。
TreeSet排序的第二種方式:讓集合具備比較性當(dāng)元素自身不具備比較性或者具備的比較性不是我們所需要的比較性時(shí),此時(shí)就需要讓集合具備自定義的比較性。
4、Map集合:
4.1、Hashtable
底層是哈希表結(jié)構(gòu)線程安全的,并且鍵和值不能為null。
4.2、HashMap
底層是哈希表結(jié)構(gòu)線程不安全的,鍵和值可以為null。
4.3、LinkedHashMap
底層是鏈表和哈希表線程不安全
4.4、TreeMap
底層是二叉樹線程不安全的
到此,相信大家對(duì)“java中使用集合類需要注意哪些細(xì)節(jié)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文名稱:java中使用集合類需要注意哪些細(xì)節(jié)
網(wǎng)頁(yè)URL:http://www.ef60e0e.cn/article/gchodg.html