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