容器
Collection介面定義了存取一組物件的方法,其子介面Set和List分別定義了儲存方式
·Set中的資料物件沒有順序且不可以重複 HashSet
·List中的資料物件有順序且可以重複 LinkedList(底層為連結串列) ArrayList(底層為陣列)
·Array讀快改慢
·Linked改快讀慢
·Hash兩者之間
Map介面定義了儲存“鍵(key) - 值(value)對映對”的方法 HashMap
①Collection介面中所定義的方法
int size()
boolean isEmpty()
void clear()
boolean contains(object element) //是否包含了element元素
boolean add(object element)
boolean remove(object element)
Iterator iterator();
boolean containsAll(Collection c) //是否包含了集合c裡面的所有元素
boolean addAll(Collection c)
boolean removeAll(Collection c) //移除有集合c裡面的所有元素
boolean retainAll(Collection c) //跟另一個集合的交集
Object[] toArray()
②Iterator介面 為了統一遍歷Collection中方法,
·所有實現了Collection介面的容器類都有一個iterator方法用以返回一個實現了Iterator介面的物件
·Iterator物件稱作迭代器,用以方便的實現對容器內元素的遍歷操作
·Iterator介面定義瞭如下方法
·boolean hasNext() //判斷遊標右邊是否有元素
·object next() //返回遊標右邊的元素並將遊標移動到下一個位置
·void remove() //刪除遊標左面的元素,在執行完next之後該操作只執行一次
補充:增強的for迴圈
缺陷:
·陣列:不能方便的訪問下標值
·集合:與使用iterator相比,不能方便的刪除集合中的內容
總結:除了簡單遍歷並讀出其中的內容
int[] arr = {1,2,3,4,5};
for(int i : arr){
System.out.println(i);
}
Collection c = new ArrayList();
c.add();
c.add();
c.add();
for(Object o : c){
System.out.println(o);
}
③Set介面
·Collection的子介面,Set介面沒有提供額外的方法,但實現Set介面的容器類中的元素是沒有順序的,而且不可以重複
·Set容器可以與數學中“集合”的概念相對應
·J2sDK API中所提供的Set容器類有HashSet,TreeSet等
④List介面
·List介面是Collection的子介面,實現List介面的容器類中的元素是有順序的,能重複的
·List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的元素
·J2SDK 所提供的List容器類有ArrayList,LinkedList等。
List容器常用演算法
·void sort(List) 對List容器內的元素排序
·void shuffle(List) 對List容器內的物件進行隨機排序
·void reverse(List) 對List容器內的物件進行逆序排列
·void fil(List, object) 用一個特定的物件重寫整個List容器
·coid copy(List dest, List src) 將src List容器內容拷貝到dest List容器
·int binarySearch(List,object) 對於順序的List容器,採用折半查詢的方法查詢特定物件
⑤comparable介面
·所有可以“排序”的類都實現了此方法,
·只有一個方法public int compareTo(object obj);
返回0 表示 this == obj
返回正數 表示 this > obj
返回負數 表示 this < obj
⑥Map介面
·實現Map介面的類用來儲存鍵 -值 對
·Map介面的實現類有HashMap 和 TreeMap 等
·Map類中儲存的鍵 - 值對通過鍵來標識,所以鍵值不能重複
Object put(Object key, Object value)
Object get(Object key)
Object remove(Object key)
boolean containsKey(Object key)
boolean containsValue(Object value)
int size()
boolean isEmpty()
void putAll(Map t)
void clear()
自動打包 Auto-boxing/unboxing
·在核實的時機自動打包、解包
·自動將物件轉換為基礎型別
泛型Generic
起因:
·JDK1.4以前型別不明確:
·裝入集合的型別都被當作Object對待,從而失去自己的實際型別
·從集合中取出時往往需要轉型,效率低,容易產生錯誤
解決辦法
·在定義集合的時候同時定義集合中物件的型別
·例項:
·可以再定義Collection的時候指定
·也可以在迴圈時用Iterator指定
List<String> c = arrayList<String>();
Iterator<String> it = c2.iterator();
好處
·增強程式的可讀性和穩定性
補充:Object是所有類的父類,其中的一些方法
toString()方法
·public String toString() 描述當前物件的有關資訊
·在進行String與其它型別資料的連線操作時,(如:System.out.println("info" + person))將自動呼叫該物件類的toString()方法
·可以根據需要在使用者自定義型別中重寫toString()方法
hashCode()方法
雜湊碼
equals()方法 相當於“==” 所以大多數類中重寫了equals()方法
public boolean equals(Object obj)
比較物件是否相等,重寫
public boolean equals(Object obj){
if(obj == null) return false;
else{
if(obj instanceof class){ //class類,判斷obj是否屬於class類
Class c = (class)obj;
if(c.color == this.color && ...){ //所有屬性都相同
return true;
}
}
}
}
總結:1136
·一個圖
Collection Map
/ \ |
set list hashMap
/ / \
hashSet arrayList linkedList
·一個類
·Collections
·三個知識點
·for
·Generic(泛型)
·Auto-boxing/unboxing
·六個介面
·colleciton
·set
·list
·map
·Iterator
·comparable
Java之容器
相關文章
- Java 容器學習之 HashMapJavaHashMap
- java容器之Set常用方法Java
- 【java學習之容器總結】Java
- Java原始碼篇之容器類——ArrayListJava原始碼
- Java 容器原始碼分析之 Deque 與 ArrayDequeJava原始碼
- 【Java基礎】--Java容器剖析:collection容器Java
- Java容器Java
- Java開發學習(九)----IOC之核心容器Java
- java 容器類Java
- java容器-IteratorJava
- Java同步容器和併發容器Java
- laravel之容器Laravel
- 容器(一)剖析面試最常見問題之 Java 集合框架面試Java框架
- java容器之List+Comparable與Comparator比較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網路程式設計基本功之Servlet與Servlet容器Java程式設計Servlet
- Java容器深入淺出之String、StringBuffer、StringBuilderJavaUI
- 容器技術之容器引擎與江湖門派
- 容器技術之LXC
- 初探STL容器之Vector
- C++之vector容器C++
- 併發容器之CopyOnWriteArrayList
- 詳解Java 容器(第③篇)——容器原始碼分析 - ListJava原始碼
- 詳解Java 容器(第④篇)——容器原始碼分析 - MapJava原始碼
- Java併發(9)- 從同步容器到併發容器Java
- Java隔離容器之sofa-ark使用說明及原始碼解析Java原始碼
- Java進階容器學習Java
- Java Collection介面 ArrayList集合(容器)Java