集合的作用:
1,在類的內(nèi)部,對(duì)數(shù)據(jù)進(jìn)行組織
2,簡(jiǎn)單而快速的搜索大數(shù)量的條目
3,有的集合接口,提供了一系列排列有序的元素,并且可以在序列中間快速的插入或者刪除有關(guān)元素
4,有的集合接口提供了映射的關(guān)系,可以通過(guò)關(guān)鍵字(key)去快速查找到對(duì)應(yīng)的唯一對(duì)象,而這個(gè)關(guān)鍵字可以是任意的類型
為何選擇集合而不是數(shù)組
數(shù)組長(zhǎng)度固定,集合長(zhǎng)度可變
數(shù)組只能通過(guò)下標(biāo)訪問(wèn),類型固定,而集合可以通過(guò)任意類型查找所映射的具體對(duì)象
collection map 是接口
Collection 接口,子接口以及實(shí)現(xiàn)類
Collection接口
1,是list set和queue接口的父接口
2,定義了可用于操作list set和queue的方法-增刪改查
List接口以及實(shí)現(xiàn)類-ArrayList
1,List是元素有序并且可以重復(fù)的集合,被稱為序列
2,list可以精確的控制每一個(gè)元素的插入位置,或刪除某一個(gè)元素
3,ArrayList-數(shù)組序列,是list的一個(gè)重要實(shí)現(xiàn)類。
4,ArrayList底層是由數(shù)組實(shí)現(xiàn)的。
如何通過(guò)迭代器來(lái)遍歷List
Iterator it =
selectedCourses.iterator(); while(it.hasNext()){ course cr = (course) it.next(); System.out.println(cr.id+","+cr.name); }
更改集合內(nèi)容
selectedCourses.set(0, new course("5","michael"));
泛型中的元素,可以是任意類型的對(duì)象,(對(duì)象的引用)
如果把某個(gè)對(duì)象放入集合,則會(huì)忽略它的類型,把它當(dāng)作object類處理
泛型規(guī)定某個(gè)集合只可以存放特定類型的對(duì)象,會(huì)在編譯期間對(duì)其進(jìn)行檢查
set是元素?zé)o序并且不可重復(fù)的集合,被稱為集
HashSet 是set的一個(gè)重要的實(shí)現(xiàn)類,哈希集 (無(wú)序并且不可重復(fù))
因?yàn)閟et是無(wú)序的,所以不能用 List的get方法遍歷取值,每一次遍歷拿出來(lái)的都是不一樣的值
在map中key值是不可以重復(fù)的,但是value值是可以重復(fù)的
每一個(gè)鍵key最多只能映射到一個(gè)值value
Map接口提供了分別返回key值集合,value值集合以及entry 鍵值對(duì)集合的方法
Map支持泛型,形如 Map
keyset集合;
Set
entry鍵值對(duì)
Set
for(Entryent:entry){ System.out.println(ent.getKey()); System.out.println(ent.getValue()); }
Map 也可以修改 put方法 Map
Student st = new Student("1","nmae");
student.put("3", st);
重寫HashCode方法判斷是否相等
Object定義了HashCode方法,返回對(duì)象的hash碼的值
當(dāng)我們調(diào)用hashset的contains方法的時(shí)候,是先調(diào)用每一個(gè)元素的hashcode值返回hash碼,在
每一個(gè)hash碼相對(duì)的前提下調(diào)用equals方法去判斷是否相等,只用在這兩個(gè)都相等的前提下才能判斷HashSet包含某個(gè)元素
eclipse可以自動(dòng)生成hashcode和equals方法
comparable 接口
comparator 接口
java結(jié)合框架
Student類實(shí)現(xiàn)了comparable接口 public int compareTo(Student o) { // TODO Auto-generated method stub return this.id.compareTo(o.id);//利用id進(jìn)行比較 } public void testSortt(){ ListstudentList = new ArrayList (); Student s1 = new Student("1","s1"); Student s2 = new Student("2","s2"); Student s3 = new Student("3","s3"); Student s4 = new Student("4","s4"); Student s5 = new Student("5","s5"); studentList.add(s1); studentList.add(s2); studentList.add(s3); studentList.add(s4); studentList.add(s5); Collections.sort(studentList);//student 類必須實(shí)現(xiàn)comparable接口 for(Student s:studentList){ System.out.println(s.id+","+s.name); } }
public class StudentComparator implements Comparator{ public int compare(Student o1, Student o2) { //comparator定義臨時(shí)的規(guī)則 //如果是 0,兩個(gè)對(duì)象相等 //正數(shù) o1>o2 //負(fù)數(shù) o1
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/65318.html
摘要:集合框架的基本接口類層次結(jié)構(gòu)其中表示接口,表示實(shí)現(xiàn)類和在實(shí)際開發(fā)中,需要將使用的對(duì)象存儲(chǔ)于特定數(shù)據(jù)結(jié)構(gòu)的容器中。實(shí)例是迭代器,擁有兩個(gè)方法方法迭代器用于遍歷集合元素。返回值則是轉(zhuǎn)換后的數(shù)組,該數(shù)組會(huì)保存集合中的所有元素。 Java Collections Framework是Java提供的對(duì)集合進(jìn)行定義,操作,和管理的包含一組接口,類的體系結(jié)構(gòu)。 Java集合框架的基本接口/類層次結(jié)構(gòu)...
摘要:?jiǎn)尉€程集合本部分將重點(diǎn)介紹非線程安全集合。非線程安全集合框架的最新成員是自起推出的。這是標(biāo)準(zhǔn)的單線程陣營(yíng)中唯一的有序集合。該功能能有效防止運(yùn)行時(shí)造型。檢查個(gè)集合之間不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【編者按】本文作者為擁有十年金融軟件開發(fā)經(jīng)驗(yàn)的 Mikhail Vorontsov,文章主要概覽了所有標(biāo)準(zhǔn) Java 集合類型。文章系國(guó)內(nèi) ITOM 管理平臺(tái) O...
摘要:如果需要?jiǎng)?chuàng)建對(duì)象,則必須與一個(gè)被迭代的集合。這是一個(gè)有狀態(tài)的方法該方法用于保證對(duì)該流的后續(xù)訪問(wèn)中最大允許訪問(wèn)的元素個(gè)數(shù)。可以對(duì)集合元素進(jìn)行整體的聚集操作。 Java集合分為Set(無(wú)序、不可重復(fù))、List(有序、重復(fù))、Queue(隊(duì)列)和Map(映射關(guān)系) Java集合概述 數(shù)組元素既可以是基本類型的值,也可以是對(duì)象(實(shí)際保存對(duì)象的引用變量)集合只能保存對(duì)象(實(shí)際保存對(duì)象的引用變量...
集合介紹 本節(jié)介紹Java集合框架,在這里,你將了解集合是什么以及它們?nèi)绾问鼓愕墓ぷ鞲p松、程序更好,你將了解構(gòu)成Java集合框架的核心元素 — 接口、實(shí)現(xiàn)、聚合操作和算法。 集合 — 有時(shí)稱為容器 — 只是一個(gè)將多個(gè)元素組合到一個(gè)單元中的對(duì)象,集合用于存儲(chǔ)、檢索、操作和傳遞聚合數(shù)據(jù)。通常,它們代表形成自然組的數(shù)據(jù)項(xiàng),例如撲克牌(卡片集合)、郵件文件夾(信件集合)或電話目錄(名稱到電話號(hào)碼的映射)...
摘要:第三階段常見對(duì)象的學(xué)習(xí)集合框架概述和集合的遍歷一集合框架的概述集合的由來(lái)如果一個(gè)程序只包含固定數(shù)量的且其生命周期都是已知的對(duì)象,那么這是一個(gè)非常簡(jiǎn)單的程序。進(jìn)而它們的遍歷方式也應(yīng)該是不同的,最終就沒(méi)有定義迭代器類。 第三階段 JAVA常見對(duì)象的學(xué)習(xí) 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來(lái) 如果一個(gè)程序只包含固定數(shù)量的且其生命周期都是已知的對(duì)象,那么這是一...
閱讀 2914·2021-10-19 10:09
閱讀 3134·2021-10-09 09:41
閱讀 3380·2021-09-26 09:47
閱讀 2696·2019-08-30 15:56
閱讀 599·2019-08-29 17:04
閱讀 986·2019-08-26 11:58
閱讀 2510·2019-08-26 11:51
閱讀 3361·2019-08-26 11:29