1. 程式人生 > >Java集合的理解

Java集合的理解

java集合的理解

1.java集合框架到底是什麽?

Java集合框架,就是對數據結構書中的常見的數據數據結構,進行封裝。

2.集合框架的架構是什麽?

都是通過一些接口和一些實現接口的類來構造數據結構中常見的數據結構。

自然就擁有了增加,刪除,查詢,遍歷,求其長度,將其置為空的方法。Java中就是add(),remove,get/contain(),iterable(),size(),clear();

集合框架中主要有2大接口,一個接口是Collection,另外一個接口是Map接口。

Collection接口繼承了Iterable接口,就自然繼承了Iterator方法,該方法主要用來遍歷數據。

Collection接口,有3個子接口,List,Set,Queue.

List接口通常就是我們數據結構中認為的線性表。

數據結構中的線性結構有數組,鏈表,隊列,棧,串。

Arraylist:就是數組。

LinkList:就是鏈表

Vector:就是動態數組,Stack:就是堆棧。

ArrayList和Vector區別:

Vector是線程同步的,ArrayList不是同步的。安全性Vector更高。

如果是在單線程中,使用ArrayList效率更高,vector差一點。

LinkList和ArrayList區別就是數組和鏈表的區別?兩個都可以實現插入,刪除和查詢,一個查詢更高,一個插入,刪除更高。

Set:是非常簡單的集合,不允許元素重復,對集合中的元素也沒有特定的順序。

HashSet:使用哈希算法存取集合中的元素,存取速度比較快。

Set有一個子接口是SortedSet。該接口提供了排序的功能。實現該SortedSet的類有TreeSet。

Map接口:是一個存儲關鍵字和值的關聯或者說是關鍵字/值對的集合。給定一個關鍵字,可以得到其相應的值。

HashMap:基於hash表的map,但是該類不保證順序。

TreeMap:是SortedMap接口的基於紅黑樹的實現(紅黑樹是一種特定類型的二叉樹,是一種自平衡的二叉樹)按照升序排序排列關鍵字。

另外java.util包中還提供了兩個類,供我們使用,豐富我們的使用。

Arrays類:傳統靜態數組。

Collections類:提供了各種集合的搜索,排序和線程完全化等操作。

Comparable接口,該接口是用來排序的。實現該接口,就可以調用Arrays.sort(引用對象)或者Collections.sort()進行自動排序。

3.hashCode()和equals()?
hahCode()和equal一般都是配合使用,主要解決的是在是將自己所創建的對象放入到set集合中,因為set集合是不允許重復的,而遇到重復的對象(地址和內容都相等,hashcode和equal都相等)。在Java中凡是給我提供好的API都是實現了object中的tostring()方法和hashcode()方法和equal方法,至於自己寫的類必須自己實現。那麽這個set集合對象它到底是如何實現,這個實現方法和哈希表中鏈地址法很像,不同的關鍵字,也有可能有著相同的地址,然後解決沖突,這是哈希表的原理。如果hashcode碼相等,在比較equal方法,如果equal方法也相等,則視為重復,如果不相等,則視為不重復,如果hashcode不相等,那equal方法比都不會比較的。
詳情請參考 http://blog.csdn.net/afgasdg/article/details/6889383
4.Comparable接口是幹什麽用的?
這個接口中有個很重要的方法就是compareTo()方法,凡是實現了該接口的方法,都是相等則為0,大於則為證書,小於則為負數。自己寫的類如果想有比較方法,需自己手動去實現。這種方法都是用作對象和對象之間進行比較的。

本文出自 “簡答生活” 博客,請務必保留此出處http://1464490021.blog.51cto.com/4467028/1922881

Java集合的理解