這篇文章給大家介紹Java中的map如何使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

十多年的通河網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整通河建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。成都創新互聯從事“通河網站設計”,“通河網站推廣”以來,每個客戶項目都認真落實執行。
Map與Collection
提到Map集合接口就不能不提到Collection集合接口,map和Collection都是集合接口,Collection中包含了我們經常用的list和set子接口;而Map是與Collection處于平級的地位;Collection中存儲的是一組對象,而Map存儲的是一個鍵值對(key/value).
Map
java為數據結構中的映射定義了一個接口java.util.Map
Map主要用于存儲健值對,根據鍵得到值,因此不允許鍵重復(重復了覆蓋了),但允許值重復。
Map 提供了一個更通用的元素存儲方法。Map 集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。從概念上而言,您可以將 List 看作是具有數值鍵的 Map。而實際上,除了 List 和 Map 都在定義 java.util 中外,兩者并沒有直接的聯系。
在Map對象中,Key是唯一的,不可重復的。null也可以作為key,但這樣的key只能有一個;但是可以有一個或多個key所對應的value都是null。
常用API:
| clear() | 從 Map 中刪除所有映射 |
| remove(Object key) | 從 Map 中刪除鍵和關聯的值 |
| put(Object key, Object value) | 將指定值與指定鍵相關聯 |
| putAll(Map t) | 將指定 Map 中的所有映射復制到此 map |
| entrySet() | 返回 Map 中所包含映射的 Set 視圖。Set 中的每個元素都是一個 Map.Entry 對象,可以使用 getKey() 和 getValue() 方法(還有一個 setValue() 方法)訪問后者的鍵元素和值元素 |
| keySet() | 返回 Map 中所包含鍵的 Set 視圖。如果要刪除 Set 中的元素還將會刪除 Map 中相應的映射(鍵和值) |
| values() | 返回 map 中所包含值的 Collection 視圖。如果要刪除 Collection 中的元素還將會刪除 Map 中相應的映射(鍵和值) |
| get(Object key) | 返回與指定鍵關聯的值 |
| containsKey(Object key) | 如果 Map 包含指定鍵的映射,則返回 true |
| containsValue(Object value) | 如果此 Map 將一個或多個鍵映射到指定值,則返回 true |
| isEmpty() | 如果 Map 不包含鍵-值映射,則返回 true |
| size() | 返回 Map 中的鍵-值映射的數目 |
當我們想判斷map中是否存在某個key時,可以用方法containsKey()來判斷,同樣想判斷是否存在value時用方法containsValue()來判斷;代碼如下:
public static void main(String[] args) {
Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();
map.put(null,null);
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
if (map.containsKey("a")) {
System.out.println("Key=Ture");
if (map.containsValue("1")) {
System.out.println("value=Ture");
}
}
}執行結果是:
Key=Ture value=Ture
Map中提供了一些常用的方法來取出Map中的數據,用的比較多的比如:entrySet()方法,;entrySet()的返回值是個Set集合,此集合的類型為Map.Entry。Map.Entry是Map聲明的一個內部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。接口中有getKey(),getValue方法,代碼如下:
public static void main(String[] args) {
Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();
map.put(null,null);
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
Set<Entry<Serializable, Serializable>> entrySet= map.entrySet();
System.out.println("entrySet="+entrySet);
for (Entry key : entrySet) {
System.out.println("key.getKey="+key.getKey()+" key.getValue()="+ key.getValue());
}
}執行的結果如下:
entrySet=[null=null, a=1, b=2, c=3]
key.getKey=null key.getValue()=null
key.getKey=a key.getValue()=1
key.getKey=b key.getValue()=2
key.getKey=c key.getValue()=3
接下來要說的是keySet方法,keySet()方法返回值是Map中key值的集合,然后可以通過get(key)遍歷來獲取value值,代碼如下:
public static void main(String[] args) {
Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();
map.put(null,null);
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
Set keySet= map.keySet();
System.out.println("keySet="+keySet);
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
Object key = (Object) iterator.next();
Object value = map.get(key);
System.out.println("key = "+key+ " value="+value);
}
}執行的結果如下:
keySet=[null, a, b,c]
key = null value=null
key = a value=1
key = b value=2
key = c value=3
最后要說的是,map還有一個values()方法,values()方法返回值是Map中value值的集合,通過遍歷可以取出value的值,代碼如下:
public static void main(String[] args) {
Map<Serializable, Serializable> map = new HashMap<Serializable, Serializable>();
map.put(null, null);
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
Collection c = map.values();
System.out.println("map.values()=" + map.values());
for (Iterator iterator = c.iterator(); iterator.hasNext();) {
Object value = (Object) iterator.next();
System.out.println("value="+value);
}
}代碼執行結果如下:
map.values()=[null,1, 2, 3]
value=null
value=1
value=2
value=3
自己做的一個利用map進行hql語句拼接的小例子:
public class HqlMap {
public static void main(String[] args) {
Map<Serializable, Serializable> map = new HashMap<Serializable, Serializable>();
map.put("isDelete", 0);
map.put("roomTypeName", "test");
Map<Serializable, Serializable> map1 = new HashMap<Serializable, Serializable>();
StringBuilder hqlBuilder = new StringBuilder();
hqlBuilder.append(" from Build ");
String hql = "" ;
if (map.isEmpty()) {
hql=hqlBuilder.toString();
} else {
hqlBuilder.append(" where ");
Set keySet = map.keySet();
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
Object key = (Object) iterator.next();
hqlBuilder.append(key + "=:" + key + " and ");
}
//去掉最后的一個and
int lastIndex = hqlBuilder.lastIndexOf("and");
if (lastIndex > -1) {
hql = hqlBuilder.substring(0, lastIndex)
+ hqlBuilder.substring(lastIndex + 3,
hqlBuilder.length());
}
}
System.out.println(hql);
}
}關于Java中的map如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享題目:Java中的map如何使用
當前路徑:http://www.js-pz168.com/article18/pojddp.html
成都網站建設公司_創新互聯,為您提供、外貿網站建設、網站策劃、網站內鏈、全網營銷推廣、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯