java map取值_Java Set接口 Map 与枚举
Set接口
概述
一個不包含重復元素的 collection。更確切地講,set 不包含滿足 e1.equals(e2) 的元素對 e1 和 e2,并且最多包含一個 null 元素特點
HashSet類
概述
此類實現 Set 接口,由哈希表(實際上是一個 HashMap 實例)支持。它不保證 set 的迭代順序;特別是它不保證該順序恒久不變。此類允許使用 null 元素。特點
【
? 原理: ? 首先判斷hashCode是否相同 ? 不相同 ? 就存儲到集合中 ? 相同 ? 比較equals方法是否相同 ? 相同 就不存儲 ? 不相同就以鏈表的方式存儲到集合中
】
HashSet存儲自定義對象去除重復元素需要重寫 hashCode和equals方法
TreeSet
概述
基于 TreeMap 的 NavigableSet 實現。使用元素的自然順序對元素進行排序,或者根據創建 set 時提供的 Comparator 進行排序,具體取決于使用的構造方法。特點
? 【
? 第一個元素進來作為根節點存儲
? 后面元素進來和根節點比較
? 大了,放在元素的右邊
? 小了,放在元素的左邊
? 相等,設置原值
】LinkeHashSet
概述
List 接口的鏈接列表實現。實現所有可選的列表操作,并且允許所有元素(包括 null)。除了實現 List接口外,LinkedList類還為在列表的開頭及結尾get、remove和insert` 元素提供了統一的命名方法。這些操作允許將鏈接列表用作堆棧、隊列或雙端隊列。特點
Map集合
Map集合提供了集合之間一種映射關系
讓集合和集合之間產生關系
Map集合的特點
1.能夠存儲唯一的列的數據(唯一,不可重復) Set
2.能夠存儲可以重復的數據(可重復) List
3.值的順序取決于鍵的順序
4.鍵和值都是可以存儲null元素的
一個映射不能包含重復的鍵。
每個鍵最多只能映射到一個值。
常用功能
1.添加功能
? V put(K key, V value)
? void putAll(Map<? extends K,? extends V> m)
2.刪除功能
? V remove(Object key)
? void clear()
3.遍歷功能
? Set keySet()
? Collection values()
? Set> entrySet()
4.獲取功能
? V get(Object key)
5.判斷功能
? boolean containsKey(Object key)
? boolean containsValue(Object value)
? boolean isEmpty()
6.修改功能
? V put(K key, V value)
? void putAll(Map<? extends K,? extends V> m)
7.長度功能
? int size()
枚舉
何為枚舉?
枚舉是在一定范圍內取值,并且這個值必須是枚舉類型中的任意一個,并且只能有一個
特點:
1.必須在規定范圍內取值
2.這個值只能取一個
3.這個值可以是規定范圍內的任意一個
枚舉中常用的方法
String name()
返回此枚舉常量的名稱,與其枚舉聲明中聲明的完全相同。
int ordinal()
返回此枚舉常數的序數(其枚舉聲明中的位置,其中初始常數的序數為零)。
static >
T valueOf(類 enumType, String name)
返回具有指定名稱的指定枚舉類型的枚舉常量。
T valueOf(String name)
T[] values();
枚舉的特點總結
枚舉既然是一個類,那么枚舉是否有構造方法,成員方法,靜態方法,靜態變量,成員變量,抽象方法?
有的話,有意義嗎?
1.枚舉中所有的成員,必須出現在枚舉對象的下面
2.如果枚舉類中有一個成員,那么 枚舉對象最后不能省略分號
3.枚舉中構造方法必須私有
4.抽象方法有意義 - 可以用來描述某個枚舉成員的信息,提高程序的可讀性
5.枚舉也是switch語句中 的常量 形式之一
switch語句中可以有哪些?
byte short int char String 枚舉
總結
以上是生活随笔為你收集整理的java map取值_Java Set接口 Map 与枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript中Math对象及方法
- 下一篇: 计算机应用基础知道,谁知道计算机应用基础