集合objectjava_collection
發一下牢騷和主題無關:
????集合和數組的區別?
????*集合:
????長度是可以變的
????集合只能存儲對象類型
????集合可以存儲多種引用數據類型的元素
????*數組:
????長度是固定的。
????數組可以存儲對象類型,也可以存儲基本數據類型
????數組存儲的多個元素是同一種數據類型
????Collection 接口
????1,添加元素
????添加單個元素:boolean add(Object obj);
????添加多個元素:boolean addAll(Collection c);
????2,判斷元素
????判斷元素是不是存在:boolean contains(Object obj);
????判斷一個集合的元素師否包含在當前集合中:boolean containAll(Collection c);
????判斷集合是不是為空:boolean isEmpty();
????3,刪除元素
????移除所有元素 :void clear();
????移除單個元素:boolean remove(Object o);
????移除多個元素:boolean removeAll(collection c)
????4,獲得元素
????返回集合上的一個迭代器:Iterator iterator():
????Iterator it = con.iterator();
????while(it.hasNext()){
????S.O.P
????it.next()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
????5,交集
????交集:boolean retainAll(Collection c)
????6,集合元素個數
????元素個數:int size();
????7,把集合轉成數組
????Object[] toArray();
????*Set:元素有序(存入順序和掏出順序分歧),元素可以重復
????*HashSet:底層數據結構是哈希表。
????如何保證元素的獨一性呢?
????它依賴兩個方法:hashCode()和equals()
????首先判斷哈希值是不是相同:
????不同:就把元素添加到集合中。
????相同:繼承進入equals方法比擬
????返回true,說明元素重復,不存。
????返回false,就把元素添加到集合
????*TreeSet:底層數據結構是二叉樹。
????可以讓集合中的元素排序。
????如何保證元素的獨一性的呢?
????它是根據比擬返回的值是0,說明元素是重復的,就不添加。
????有兩種實現計劃:
????A:讓自定義對象具有比擬性
????實現Comparable接口
????B:讓集合具有比擬性
????實現Comparator接口
????如果兩種情況都存在,以B為主
????*List:元素無序,元素要求獨一
????ListIterator lit = list.listIterator();//特別方法
? ? ? ?//迭代器容易涌現并發修改異常 在應用迭代器元素的時候,不能應用集合區操作元素,否則,就會涌現并發修改異常
每日一道理信念是巍巍大廈的棟梁,沒有它,就只是一堆散亂的磚瓦;信念是滔滔大江的河床,沒有它,就只有一片泛濫的波浪;信念是熊熊烈火的引星,沒有它,就只有一把冰冷的柴把;信念是遠洋巨輪的主機,沒有它,就只剩下癱瘓的巨架。
????*ArrayList//遍歷4種 普通for 增強for Iterator ListIterator
????//掏出ArrayList中重復的元素(自定義對象)要重寫 equals方法 例如:return this.age==s.age && this.name.equals(s.name);
????底層數據結構式數組,查詢快,增刪慢。
????線程不安全,效率高。
????*Vector//3種普通for 增強for Enumeration
????底層數據結構式數組,查詢快,增刪慢。
????線程安全,效率低
????*LinkedList
????底層數據結構式鏈表,查詢慢,增刪快。
????線程不安全,效率高
????Map接口 ?: 存儲的是鍵值對情勢的元素
? ?它的每一個元素,都是由鍵和值兩個元素組成
? ?鍵是不能有重復的,值是可以重復的
? ?每一個鍵獨一指向一個值
????1,添加功能
????put(k key, V value)
????2,判斷功能
????boolean containsKey(Object key)
????boolean containsValue(Object value)
????boolean isEmpty()
????3,刪除功能
????void clear()
????remove(Object key)
????4,獲得功能
????Set<Map,Entry<k,v>> entrySet()
????Set<k> keySet()
????V get(Object key)
????Collection<v> values()
????5,長度
????int size()
????*兩種遍歷方法
????1,A:先獲得所有丈夫的集合,keySet
? B: 遍歷丈夫集合,獲得到每一個丈夫,增強for
? C:通過每一個丈夫找到自己的妻子。get()
????2,A:先獲得結婚證的集合,entrySet()--Set集合的每一個元素師一個結婚證對象
? B:遍歷結婚證集合,獲得到每一個結婚證,增強for
? C:通過結婚證獲得丈夫和妻子,getKey(),getValue()
????*HashMap
????底層數據結構是哈希表
????如何保證鍵的獨一性呢
????依賴hashCode()和equals()方法
????線程不安全,效率高,允許null鍵和值
????*Hashtable
????底層數據結構是哈希表
????如何保證鍵的獨一性呢
????依賴hashCode()和equals()方法
????線程安全,效率低,不允許null鍵和值
????*TreeMap
????底層數據結構是二叉樹
????如何保證鍵的獨一性呢
????兩種方法
????自定義元素具有比擬性
????集合具有比擬性
????線程不安全,效率高,允許null值,不允許null鍵
文章結束給大家分享下程序員的一些笑話語錄: 姿勢要豐富,經常上百度!
--------------------------------- 原創文章 By
集合和object
---------------------------------
總結
以上是生活随笔為你收集整理的集合objectjava_collection的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm垃圾内存回收问题
- 下一篇: less 学习指南