容器(container)及相關知識點
JAVA還真是沒入門呢,今天趕緊惡補一下,下了視頻來看,對容器整體上有個初步的概念,做個筆記,以后回憶也方便點兒,要查API多運用了
容器 container
collection接口-定義了存取一組對象的方法,其子接口set和list分別定義了存儲方式.
Set中的數據對象沒有順序且不可以重復(equals)
實現的就是數學概念上的集合,重復數據是不能被添加進去的
retainAll(Collection c) 交集
containsAll(Collection c) 全集
List中的數據對象有順序且可以重復
ArrayList 以數組實現的;LinkedList 以鏈表實現的
map接口定義了存儲"鍵(Key)-值(Value)映射對"的方法
put,get,putAll....
HashMap
TreeMap
Auto-boxing/unboxing(>jdk1.4)
在合適的時機自動打包,解包
Map m1 = new HashMap();
//m1.put("one",new Integer(1));
m1.put("one",1);//現在可以直接這么寫了
//int i = ((Integer)m1.get("one")).intValue();
int i = (Integer)m1.get("one");//現在可以直接這么寫了
如何選擇數據結構
衡量標準:讀的效率和改的效率
Array讀快改慢
Linked改快讀慢
Hash兩者之間
Collections類 此類完全由在 collection 上進行操作或返回 collection 的靜態方法組成
sort()排序
shuffle()隨即排序
reverse()反轉
封裝好的binarySearch()使用二分搜索法搜索指定列表,以獲得指定對象
實現了java.lang.Comparable()接口的對象都可以排序,
補充:
Iterator 迭代器接口有3個方法
boolean hasNext();
E next();返回迭代的下一個元素.
void remove();刪除,
迭代器運行的時候鎖定操作,所以只有這個刪除方法
增強的FOR循環,僅語法簡便
int[] a ={1,2,3,4,5};
for( int i : a){
System.out.println(i);
//方便的遍歷內容,但不能方便的訪問數組小標
}
Collection c = new ArrayList();
c.add();
c.add();
c.add();
for(Object o: c){
System.out.println(o);
//與iterator相比不能方便的刪除集合中的內容
//內容也在調用iterator
}
泛型Generic(jdk1.5+)
看API就可以了,直接指定類型,不用強制轉換
Map<String, int> map = new HashMap<String,int>();
取數據也方便了
突然明白,崩潰的日子,是自己的不努力造成的.
posted on 2009-12-19 11:30 不要刷新 閱讀(538) 評論(0) 編輯 收藏 所屬分類: Java+Framework