您好,登錄后才能下訂單哦!
本篇內容主要講解“Map的常用方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Map的常用方法有哪些”吧!
set底層是默認value的map
Map的常用方法
//介紹Map接口的方法
Map<String, String> map = new HashMap<>();
//1.增加
//V put(K key,V value) 增加一個鍵值對
//關于返回值,如果當前的key之前沒有添加過,返回null.如果當前的key之前已經存在了,這里返回之前的值
//void putAll(Map<? extends K,? extends V> map) 增加多個
//2.刪除
//V remove(Object key) 根據key刪除元素
//返回值就是被刪掉的值
//void clear() 刪除全部 != null
//3.獲取
//V get(Object key) 根據key查找元素
//int size() 獲取鍵值對的個數
//Set<K> keySet() 遍歷方法一
//Set<Map.Entry<K,V>> entrySet() 遍歷方法二
//4.常用的判斷
//boolean isEmpty() //空map!=null
//boolean containsKey(K key) 是否包含當前的key
//boolean containsValue(V value) 是否包含當前的value
## 一、HashMap
底層是哈希表,線程不安全
**哈希表結構**
![yuanli](G:\bigdata\week2\7-31\資料\hash表\Hash表.assets\yuanli.png)
### 2.HashMap與HashTable區別
1.HashTable是線程安全的
2.HashTable的key不能為空
## 二、TreeMap
底層是二叉樹,線程不安全
/*
* TreeMap的注意點:
* 1.什么類型的數據類型可以作為key?
* a:實現了Comparable接口的compareTo()方法 b:實現了Comparator接口的compare()方法
* 可以的代表:String,包裝類,自定義的實現了要求的類
* 不可以的代表:數組,ArrayList,LinkedList(如果給他們建立的比較器也可以比較,但是不建議使用)
*
* 2.元素可不可以作為key,跟元素內部的成員有沒有關系
* 元素可不可以作為key,跟元素內部的成員有沒有關系
*/
public class Demo5 {
public static void main(String[] args) {
TreeMap<Dog, String> map = new TreeMap<>();
//如果沒有重寫compareTo或者compare方法,put內部無法調用元素的這兩個方法.所以會報錯
map.put(new Dog(), "haha");
}
}
class Dog implements Comparable<Dog>{
//2.元素可不可以作為key,跟元素內部的成員有沒有關系
Object object;
@Override
public int compareTo(Dog o) {
// TODO Auto-generated method stub
return 0;
}
}
```
# 可變參數
```
public static void main(String[] args) {
sum(2, 3);//值傳遞
//址傳遞
int[] arr = {3,4,5};
sum(arr);
//可變參數
//可變參數的特點
//1.給可變參數傳值的實參可以直接寫,個數不限制,內部會自動的將他們放入可變數組中.
sum1(5,6,7,8,9,3,3,4);
//2.當包括可變參數在內有多個參數時,可變參數必須放在最后面,并且一個方法中最多只能有一個可變參數
sum2(6,3);
//3.當可變參數的方法與固定參數的方法是重載關系時,調用的順序,固定參數的優先于可變參數的.
sum3(2,3);
}
//求兩個數的和
//值傳遞
public static int sum(int a,int b) {
return a+b;
}
//址傳遞
public static int sum(int[] a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
//通過可變參數
//構成:數據類型+... 實際上就是數據類型[] 即:int[]
public static int sum1(int... a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
//2.當包括可變參數在內有多個參數時,可變參數必須放在最后面,并且一個方法中最多只能有一個可變參數
public static void sum2(float b,int... a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
System.out.println(sum);
}
//3.當可變參數的方法與固定參數的方法是重載關系時,調用的順序,固定參數的優先于可變參數的.
public static int sum3(int a, int b) {
System.out.println("a");
int sum = 0;
return sum;
}
public static int sum3(int... a) {
System.out.println("b");
int sum = 0;
return sum;
}
```
到此,相信大家對“Map的常用方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。