亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Map的簡介及其使用

發布時間:2021-08-25 16:59:40 來源:億速云 閱讀:129 作者:chen 欄目:編程語言

這篇文章主要講解了“Java中Map的簡介及其使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java中Map的簡介及其使用”吧!

1.Map集合概述和特點

概述:
將鍵映射到值的對象,一個映射不能包含重復的鍵,每個鍵最多只能映射到一個值。
Map接口和Collection接口的不同
Map是雙列的,Collection是單列的
Map的鍵唯一,Collection的子體系Set是唯一的
Map集合的數據結構針對鍵有效,跟值無關;Collection集合的數據結構是針對元素有效。

2.Map集合的功能概述

(1):添加
V put(K key,V value):添加元素。這個其實還有另一個功能?替換
如果鍵是第一次存儲,就直接存儲元素,返回null
如果鍵不是第一次存在,就用值把以前的值替換掉,返回以前的值
(2)  :刪除
void clear():移除所有的鍵值對元素
V remove(Object key):根據鍵刪除鍵值對元素,并把值返回
(3)  :判斷
boolean containsKey(Object key):判斷集合是否包含指定的鍵
boolean containsValue(Object value):判斷集合是否包含指定的值
boolean isEmpty():判斷集合是否為空
(4)  :獲取
Set<Map.Entry<K,V>> entrySet(): 返回一個鍵值對的Set集合
V get(Object key):根據鍵獲取值
Set keySet():獲取集合中所有鍵的集合
Collection values():獲取集合中所有值的集合
(5)  :長度
int size():返回集合中的鍵值對的對數

3.Map集合的遍歷之鍵找值

獲取所有鍵的集合,遍歷鍵的集合,獲取到每一個鍵根據鍵找值  

示例代碼如下:

public class Test4 {
   public static void main(String[] args) {
       HashMap<Phone,String> map = new HashMap<>();
       map.put(new Phone("Apple",7000),"美國");
       map.put(new Phone("Sony",5000),"日本");
       map.put(new Phone("Huawei",6000),"中國");
       Set<Phone> phones = map.keySet();
       Iterator<Phone> iterator = phones.iterator();
       while (iterator.hasNext()){
           Phone next = iterator.next();
           System.out.println(next.getBrand()+"=="+next.getPrice()+"=="+map.get(next));
       }

   }
}
class Phone{
   private String Brand;
   private int Price;

   public Phone(String brand, int price) {
       Brand = brand;
       Price = price;
   }

   public String getBrand() {
       return Brand;
   }

   public void setBrand(String brand) {
       Brand = brand;
   }

   public int getPrice() {
       return Price;
   }

   public void setPrice(int price) {
       Price = price;
   }
}

獲取所有鍵值對對象的集合,遍歷鍵值對對象的集合,獲取到每一個鍵值對對象,根據鍵值對對象找鍵和值  

示例代碼如下:

public class Test4 {
   public static void main(String[] args) {
       HashMap<Phone,String> map = new HashMap<>();
       map.put(new Phone("Apple",7000),"美國");
       map.put(new Phone("Sony",5000),"日本");
       map.put(new Phone("Huawei",6000),"中國");
       Set<Map.Entry<Phone, String>> entries = map.entrySet();
       for (Map.Entry<Phone, String> entry : entries) {
           System.out.println(entry.getKey().getBrand()+"==="+entry.getKey().getPrice()+"==="+entry.getValue());
       }
   }
}

4.LinkedHashMap的概述和使用

LinkedHashMap的概述: Map 接口的哈希表和鏈接列表實現,具有可預知的迭代順序。LinkedHashMap的特點: 底層的數據結構是鏈表和哈希表 元素有序 并且唯一。
元素的有序性由鏈表數據結構保證 唯一性由 哈希表數據結構保證。
Map集合的數據結構只和鍵有關  

5.TreeMap集合

TreeMap 鍵不允許插入null
TreeMap: 鍵的數據結構是紅黑樹,可保證鍵的排序和唯一性
排序分為自然排序和比較器排序
線程是不安全的效率比較高
6.TreeMap集合排序:
實現Comparable接口,重寫CompareTo方法
使用比較器  

7.TreeMap集合的遍歷

示例代碼如下:

public class Test4 {
   public static void main(String[] args) {
       TreeMap<Phone,String> map = new TreeMap<>();
       map.put(new Phone("Apple",7000),"美國");
       map.put(new Phone("Sony",5000),"日本");
       map.put(new Phone("Huawei",6000),"中國");
       Set<Phone> phones = map.keySet();
       Iterator<Phone> iterator = phones.iterator();
       while(iterator.hasNext()){
           Phone next = iterator.next();
           System.out.println(next.getBrand()+"==="+next.getPrice()+"==="+map.get(next));
       }
   }
}
class Phone implements Comparable<Phone>{
   private String Brand;
   private int Price;

   public Phone(String brand, int price) {
       Brand = brand;
       Price = price;
   }

   public String getBrand() {
       return Brand;
   }

   public void setBrand(String brand) {
       Brand = brand;
   }

   public int getPrice() {
       return Price;
   }

   public void setPrice(int price) {
       Price = price;
   }

   @Override
   public int compareTo(Phone o) {
       return this.getPrice() - o.getPrice();
   }
}

8.Collections工具類的概述和常見方法

(1):Collections類概述: 針對集合操作 的工具類
(2):Collections成員方法
public static void sort(List list): 排序,默認按照自然順序
public static int binarySearch(List<?> list,T key): 二分查找
public static T max(Collection<?> coll): 獲取最大值
public static void reverse(List<?> list): 反轉
public static void shuffle(List<?> list): 隨機置換

Map中的鍵唯一,但是當存儲自定義對象時,需要重寫Hashcode和equals方法  

感謝各位的閱讀,以上就是“Java中Map的簡介及其使用”的內容了,經過本文的學習后,相信大家對Java中Map的簡介及其使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝鸡市| 贵南县| 那曲县| 威宁| 紫云| 自贡市| 西华县| 涞源县| 桐乡市| 察雅县| 翼城县| 合阳县| 茂名市| 北京市| 诏安县| 彰化市| 伊春市| 钟祥市| 稻城县| 库尔勒市| 吴忠市| 杭锦旗| 莱芜市| 和平县| 左贡县| 商丘市| 泗水县| 明溪县| 抚顺县| 怀柔区| 高要市| 丰台区| 腾冲县| 泰安市| 图片| 双牌县| 克山县| 商洛市| 新昌县| 朝阳区| 长葛市|