java面向对象编程集合边框_java 面向对象编程-- 第15章 集合框架
1、? 集合特點(diǎn):元素類(lèi)型不同、集合長(zhǎng)度可變、空間不固定
2、? java中對(duì)一些數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行了封裝即集合。集合也是一種對(duì)象,用于存儲(chǔ)、檢索、操作和傳輸對(duì)象。
3、? JCF(Java Collections Framework)是JavaSE中包含的由一組類(lèi)和接口組成的Java集合框架,其主要功能是用來(lái)將存儲(chǔ)的數(shù)據(jù)以某種結(jié)構(gòu)組織,并以特定的方式來(lái)訪(fǎng)問(wèn)這些數(shù)據(jù),其目標(biāo)是提供一個(gè)處理對(duì)象集合的通用框架,減少程序員處理不同對(duì)象集合時(shí)的編碼量。
4、? 集合框架包含三個(gè)內(nèi)容:接口、實(shí)現(xiàn)類(lèi)、算法。
Collection是List和Set的父接口。
List的接口特點(diǎn):線(xiàn)性,元素可以重復(fù)。
Set接口的特點(diǎn):元素不可重復(fù)。
Map集合:一個(gè)元素包含兩個(gè)對(duì)象(鍵對(duì)象和值對(duì)象),而且鍵不能重復(fù)。
5、? 集合和數(shù)組的區(qū)別:
集合中只能存放對(duì)象的引用,數(shù)組可以是基本類(lèi)型,可以是引用類(lèi)型;
集合的長(zhǎng)度可以隨元素多少而變化,數(shù)組創(chuàng)建好后長(zhǎng)度不能改變;
集合算法比較豐富,可以省去開(kāi)發(fā)者很多編碼,數(shù)組算法有限。
6、? for循環(huán)遍歷,只能用于List集合;迭代器方式(Iterator),得到迭代器的算法接口;for each遍歷循環(huán)。
7、? List三個(gè)實(shí)現(xiàn)類(lèi)的區(qū)別:
ArrayList:底層部分由數(shù)組實(shí)現(xiàn),遍歷速度快,中間插入或刪除元素速度慢。
Vector:和ArrayList類(lèi)似,底層也由數(shù)組實(shí)現(xiàn),但它是線(xiàn)程安全的類(lèi),效率較低。
LinkedList:采用雙向鏈接實(shí)現(xiàn),存放于不連續(xù)的內(nèi)存空間,每個(gè)元素除了存放數(shù)據(jù)外,還要存放上一個(gè)和下一個(gè)元素的地址。遍歷速度慢,中間插入、刪除速度快。
8、? Set實(shí)現(xiàn)類(lèi)的區(qū)別:
HashSet:將元素按Hash碼排列;
LinkedHashSet:將元素加入順序排列;
TreeSet:可以將元素按指定規(guī)則進(jìn)行排序。
9、? Map實(shí)現(xiàn)類(lèi)的區(qū)別:
HashMap:元素按鍵對(duì)象的Hash碼排列,線(xiàn)程不安全,允許null鍵和null值;
Hashtable:元素按鍵對(duì)象的Hash碼排列,線(xiàn)程安全,不允許null鍵和null值;
TreeMap:元素按照指定的規(guī)則排列。
10、????????????? Map接口的優(yōu)勢(shì):便于查找(根據(jù)鍵對(duì)象,找到值對(duì)象,如果鍵不存在,返回null)。
11、????????????? 當(dāng)我們需要將對(duì)象存入基于哈希算法的HashSet和HashMap中時(shí),需要同時(shí)重寫(xiě)equals()方法和hashCode()方法,并且保證當(dāng)兩個(gè)對(duì)象用equals()方法比較結(jié)果為true時(shí),這兩個(gè)對(duì)象的hashCode()方法的返回值相等。
12、????????????? 實(shí)現(xiàn)了Comparable接口的類(lèi),可以實(shí)現(xiàn)自然排序。如果要自定義排序,就要使用Comparator接口。
13、????????????? 如果編寫(xiě)的類(lèi)實(shí)現(xiàn)了Comparable接口,那么這個(gè)類(lèi)應(yīng)該重寫(xiě)compareTo()、equals()和hashCode()方法,保證CompareTo()和equals方法采用相同的比較規(guī)則,來(lái)比較兩個(gè)對(duì)象是否相等。
14、????????????? 泛型:就是允許在定義類(lèi)、接口時(shí)指定類(lèi)型形式參數(shù),這個(gè)類(lèi)型形式參數(shù)將在聲明變量、創(chuàng)建對(duì)象時(shí)確定(即傳入的實(shí)際參數(shù))。通過(guò)泛型將參數(shù)類(lèi)型化以后,我們就可以強(qiáng)迫程序在編譯期就檢查從集合中取得的數(shù)據(jù)的類(lèi)型,以達(dá)到數(shù)據(jù)安全的目的。
原文:http://www.cnblogs.com/littlejava/p/5470608.html
總結(jié)
以上是生活随笔為你收集整理的java面向对象编程集合边框_java 面向对象编程-- 第15章 集合框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win7 docker java开发环境
- 下一篇: java中形参不可以是对象吗_(重要)j