Java特性-Collection和Map
創建博客的目的主要幫助自己記憶和復習日常學到和用到的知識;或有紕漏請大家斧正,非常感謝!
?
之前面試,被問過一個問題:List和Set的區別。
主要區別很明顯了,兩者都是數組形式存在的,繼承了Collection,最大的卻別在于:Set中不可以出現重復元素,而List是沒有限制的。
連帶著想好好了解下Java中兩個類:Collection和Map,搜集了重點知識如下:
類層級關系如下,
Collection?
├List
│├LinkedList
│├ArrayList
│└Vector?
│ └Stack?
└Set?
Map?
├Hashtable?
├HashMap?
└WeakHashMap?
Collection和Map都是接口,平時較為常用的幾個明星類都在這里衍生了。
LinkedList,平時用到的不多,網絡一下,常用兩個用途:棧和隊列;
如創建一個對象:LinkedList lklt= new LinkedList();
操作該對象:
//入棧
lklt.addFirst(obj);
//出棧并刪除元素
lklt.removeFirst();
//入隊
lklt.add(obj);//同addLast(obj);
//出隊并刪除元素
lklt.removeFirst();
ArrayList,較為常用的對象了,平時要保存個數組動輒就new一個出來。需注意使用場景:
- 一般順序遍歷情況下使用ArrayList,但注意構造函數中設置初始大小
- 盡量不對ArrayList進行插入或刪除操作(刪除尾部除外),若有多次刪除/插入操作又有隨機遍歷的需求,可以再構建一個ArrayList,把復合條件的對象放入新ArrayList,而不要頻繁操作原ArrayList
- 經常有刪除/插入操作而順序遍歷列表的情況下最適合使用LinkedList
網絡大牛總結如下:?
?
Map,開發必不可少,經常替代Bean,減少開發量。
參考別人的例子,遍歷:
第一種:Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此種方式!
第二種:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后盡量少使用!
轉載于:https://www.cnblogs.com/tougherthanevil/p/5734572.html
總結
以上是生活随笔為你收集整理的Java特性-Collection和Map的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL判断语句用法和多表查询
- 下一篇: “计量确认”与“检定”之区别