最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育Java入門全套視頻教程(java核心技術,適合java零基礎,Java

2023-07-19 11:22 作者:FELICIA沐辰  | 我要投稿

集合

一、集合

1.概念:對象的容器,定義了對個對象操作的常用方法。可實現(xiàn)數(shù)組的功能。

2.和數(shù)組的區(qū)別:

???數(shù)組長度固定,集合長度不固定。

???數(shù)組可以存儲基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,集合只能存儲引用數(shù)據(jù)類型。

3.位置:java.util.*;

二、Collection集合

1.Collection父接口:是該體系結構的根接口,代表一組“對象”,被稱為“集合”。每個對象都是該集合的“元素”。

2.List接口特點:有序、有下標,元素可以重復。

3.Set接口特點:無序、無下標,元素不能重復。(唯一)

三、List接口

List子接口

A.有序、有下標、元素可以重復。

B.繼承父接口可繼承提供的共性方法,同時定義了獨有的與索引相關的方法。

四、List實現(xiàn)類

??ArrayList【重點】:

數(shù)組結構實現(xiàn),查詢快、增刪慢;

JDK1.2版本,運行效率快、線程不安全。

??ArrayList源碼分析

????分析:

DEFAULT_CAPACITY = 10;默認容量?

如果沒有向集合中添加任何元素時,容量0,添加一個元素之后 容量10

每次擴容大小是原來的1.5倍

elementData存放元素的數(shù)組?

size?實際元素個數(shù)

add()?添加元素


五、Vector實現(xiàn)類

??Vector:

數(shù)組結構實現(xiàn),查詢快、增刪慢;

JDK1.0版本,運行效率慢、線程安全。

六、LinkedList實現(xiàn)類

???LinkedList:

鏈表結構實現(xiàn),增刪快,查詢慢。

七、數(shù)據(jù)結構:棧、隊列

???

八、泛型

??A.Java泛型是JDK1.5中引入的一個新特性,其本質是參數(shù)化類型,把類型作為參數(shù)傳遞。

B.常見形式有泛型類、泛型接口、泛型方法。

C.語法:

<T,...>?T稱為類型占位符,表示一種引用類型。

D.好處:

提高代碼的重用性

防止類型轉換異常,提高代碼的安全性

E.注意事項

??

F.泛型集合

??1.概念:參數(shù)化類型、類型安全的集合,強制集合元素的類型必須一致。

2.特點:

編譯時即可檢查,而非運行時拋出異常。

訪問時,不必類型轉換(拆箱)。

不同泛型之間引用不能相互賦值。?

九、Set子接口

特點:無序、無下標,元素不可重復。

方法:全部繼承自Collection中的方法。

十、HashSet實現(xiàn)類

??HashSet【重點】:

基于hashCode、equals實現(xiàn)元素不重復。

當存入元素的哈希碼相同時,會調用==或equals進行確認,結果為true,拒絕后者存入。

十一、LinkedHashSet實現(xiàn)類

???LinkedHashSet:

鏈表實現(xiàn)的HashSet,按照鏈表進行存儲,即可保留元素的插入順序。

十二、TreeSet實現(xiàn)類

???TreeSet:

基于排列順序實現(xiàn)元素不重復。

實現(xiàn)了SortedSet接口,對集合元素自動排序。

元素對象的類型必須實現(xiàn)Comparable接口,指定排序規(guī)則。

通過CompareTo方法確定是否為重復元素。

十三、Comparator接口

???Comparator比較器

可以實現(xiàn)定制比較,元素自身提供的比較規(guī)則稱為自然排序。

compare(o1,o2),如果返回值為0,則為重復元素。

使用Comparator比較器,元素類型可不實現(xiàn)Comparable接口,并且優(yōu)先級高于Comparable接口。

十四、Map集合

A.特點:稱為“映射”存儲一對數(shù)據(jù)(Key-Value),鍵不可重復,值可以重復。

B.方法:

???V put(K key,V value) //將對象存入到集合中,關聯(lián)鍵值。key重復則覆蓋原值。?

Object get(Object key) //根據(jù)鍵獲取對應的值。

Set<K> keySet()//返回所有key。

Collection<V> values() //返回包含所有值的Collection集合。

Set<Map.Entry<K,V>> entrySet() //鍵值匹配的Set集合。

十五、Map集合的實現(xiàn)類

???HashMap【重點】:

JDK1.2版本,線程不安全,運行效率快 ;允許用null 作為key或是value。

LinkedHashMap:

有順序的HashMap。

TreeMap :

實現(xiàn)了SortedMap接口(Map的子接口),可以對key自動排序,Key需實現(xiàn)Comparable接口。


十六、Hashtable實現(xiàn)類

???Hashtable :

JDK1.0版本,線程安全,運行效率慢;不允許null作為key或是value。

十七、Properties實現(xiàn)類

????Hashtable的子類,要求key和value都是String。通常用于配置文件的讀取。

十八、總結

????

十九、HashMap源碼分析

???分析:

HashMap剛創(chuàng)建時,table是null,為了節(jié)省空間,當添加第一個元素時,table容量調整為16。

當元素個數(shù)大于閾值(16*0.75=12)時,會進行擴容,擴容后大小為原來的2倍。目的是減少調整元素的個數(shù)。

jdk1.8 當每個鏈表長度大于8,并且數(shù)組元素個數(shù)大于等于64時,會調整為紅黑樹,目的提高執(zhí)行效率。

jdk1.8 當鏈表長度小于等于6時,調整成鏈表。

jdk1.8以前,鏈表是頭插入,jdk1.8以后是尾插入。

千鋒教育Java入門全套視頻教程(java核心技術,適合java零基礎,Java的評論 (共 條)

分享到微博請遵守國家法律
余姚市| 镇江市| 洪湖市| 博兴县| 天长市| 嘉义市| 武山县| 沁水县| 囊谦县| 霍城县| 长春市| 兴山县| 岳阳市| 嘉兴市| 诸城市| 周口市| 南川市| 河源市| 绥芬河市| 阳新县| 南汇区| 共和县| 宜兰县| 茂名市| 高雄县| 略阳县| 封丘县| 长阳| 濉溪县| 综艺| 浦县| 金溪县| 景宁| 绥滨县| 乌兰县| 兖州市| 扎兰屯市| 陆河县| 雷州市| 永顺县| 大渡口区|