Java容器
容器:裝其他東西的
Java API 所提供的一系列類的例項,用於在程式中存放物件。
1136:一個圖 一個類 三個知識點和6個介面(TreeSet TreeMap)
java.util utili 工具包
介面定義,定義標準。
Collection集合介面 Set集合介面 無順序 不能重複 List集合 有順序 能重複(equals返回為true)。
重複指的是元素之間相互equals。
contains,兩個元素equals,而不是 == 這是引用相等。
ArrayList 不指定型別時 可以新增多個類。
父類引用訪問子類物件,無法訪問子類物件私有的方法。(控制反轉)
remove時會和集合內元素 進行 equals (重寫equals,不是指向同一引用)比較 ,若為true 則移除。重寫equals 就需要重寫hashcode
比較物件主要用的是equals方法,有的時候需要HashCode方法,物件在Map介面作為索引,作為Key,使用HashCode方法進行比較,效率更高。重寫Equals則重寫hashCode。相等的物件應具有相同的hashCode方法。hashCode非常適合做索引。
Iterator: 迭代器
所有實現了Collection介面的容器類都有一個iterator方法用以返回一個實現了Iterator介面的物件。Iterator物件稱作迭代器(不可反覆遍歷),用以方便的實現對容器內元素的遍歷操作。統一實現不同集合類的遍歷操作。
List是對外提供的一個介面,容器。ArrayList是使用陣列作為底層儲存(方便遍歷)。LinkedList以連結串列作為底層儲存元素(方便新增)。
多型存在三個必要的條件:
要有繼承。要有重寫。要有父類引用指向子類物件。
Iterator物件的remove方法是在迭代過程中刪除元素的唯一的安全方法。
Iterator迴圈遍歷過程中,執行了鎖定。不允許其他物件進行操作。
遍歷陣列的時候 不能方便的訪問下標值;
訪問集合時,與使用Iterator相比 不能方便的刪除集合內容,在內部也是呼叫Iterator方法。
實現Set介面的容器類中的元素必須是沒有順序的,而且不可以重複。
重寫equals方法,重寫hashCode方法。重複的元素不能填寫。
retainAll 集合之間求交集。無序。
list非常像陣列。可以隨便更改容器大小,但是陣列不行(需要多次copy)。有順序,可以重複。List容器中的元素對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的元素。
set方法返回的是舊元素。 indexOf 重寫equals 重寫hashCode
Java.util.Collections提供了一些靜態方法實現了基於List容器的一些常用演算法。
void sort(List) 對List容器內的元素排序
Collections.shuffle() Collections.sort() Collections.reverse() Collections.binarySearch() 靜態方法。
Comparable:
通過介面只能看見物件的某一點。
Array讀快改慢 Linked改快讀慢 Hash兩者之間
鍵值不能重複(equals hashCode),HashMap TreeMap
put(key,newvalue) 返回的是 oldValue
autoBoxing_UnBoxing 自動打包
自動將基礎型別轉換為物件 -- 打包 ,將物件轉換為基礎型別 -- 解包
泛型: Generic
之前型別不明確,裝入集合的型別都被當作Object對待,從前失去自己的實際型別。
從集合中取出時往往需要轉型,效率低,容易產生錯誤。
在定義集合的時候 同時定義集合中物件的型別,增強程式的可讀性和穩定性。問題越提前越好,儘量不要再執行時出問題。
使用到集合儘量使用泛型。
總結
泛型的可讀性和穩定性
相關文章
- 【Java基礎】--Java容器剖析:collection容器Java
- java 容器類Java
- java容器-IteratorJava
- Java之容器Java
- Java同步容器和併發容器Java
- Java併發容器Java
- 轉載 Java容器Java
- JAVA容器簡述Java
- Java容器詳解Java
- java-容器 02Java
- [Java基礎]容器Java
- Java 容器和泛型(1)認識容器Java泛型
- 詳解Java 容器(第⑤篇)——容器原始碼分析 - 併發容器Java原始碼
- Java進階06 容器Java
- Java容器工具類ArraysJava
- Java 容器系列總結Java
- 詳解Java 容器(第③篇)——容器原始碼分析 - ListJava原始碼
- 詳解Java 容器(第④篇)——容器原始碼分析 - MapJava原始碼
- Java併發(9)- 從同步容器到併發容器Java
- Java進階容器學習Java
- Java 容器學習之 HashMapJavaHashMap
- Java Collection介面 ArrayList集合(容器)Java
- java容器新增一組元素Java
- java容器之Set常用方法Java
- Java知識點總結(Java容器-List)Java
- Java知識點總結(Java容器-Vector)Java
- Java知識點總結(Java容器-Set)Java
- 詳解Java 容器(第②篇)——容器中的設計模式Java設計模式
- 【Java基礎】--Java容器剖析:Set、List、Map介面Java
- 【Java】容器相關知識點Java
- Java併發佇列與容器Java佇列
- 【java學習之容器總結】Java
- Java容器ArrayList原始碼淺析Java原始碼
- Java容器型別使用總結Java型別
- 詳解Java 容器(完結篇)——詳解容器的設計模式、List、Map、併發容器Java設計模式
- 【Java】Java容器篇(二),深入理解List集合類Java
- Java容器相關知識點整理Java
- 詳解Java 容器(第①篇)——概覽Java