大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java編程語言大全:如何在Java中創建字典

Java編程語言大全:如何在Java中創建字典

更新時間:2022-04-02 11:34:45 來源:動力節點 瀏覽2420次

如果需要在Java程序中創建字典,解決這個問題最合乎邏輯的方法就是使用字典數據結構。這種數據結構允許您以“鍵-值”的形式存儲信息。Java 有一個特殊的Dictionary類以及它的后代Hashtable。還有Map接口和HashMap類,它也存儲“鍵-值”對。所以有很多方法可以創建 Java 字典。

字典數據結構

因此,Dictionary 數據結構將信息存儲為鍵值組合。也就是說,我們將任何值與一個鍵關聯(例如,它可以是 id)并將這對輸入到字典中。對字典的元素進行尋址、刪除、在字典中的搜索都是由鍵執行的。使用這樣的數據結構組織起來似乎很方便,例如,電話簿,其中名稱(鍵)對應于電話號碼(值)。

字典類及其擴展

首先, java.util.Dictionary util.Dictionary是一個抽象類。它表示鍵值關系,其工作方式類似于地圖。給定一個鍵,您可以存儲值,并在需要時使用其鍵檢索值。因此,它是一個鍵值對列表。

public abstract class Dictionary<K,V> extends Object

由于這個類是抽象的,我們不會直接使用它。Dictionary有一個直接的子類Hashtable。因此,要在 Java 中創建字典,您可以使用Hashtable。該類實現了一個哈希表,它將鍵映射到值,任何非空對象都可以用作鍵或值。在 Java 層次結構中Hashtable擴展了Dictionary并實現了Map。讓我們舉個例子。我們將基于Hashtable創建一個經典字典、電話簿。

Dictionary phoneBook = new Hashtable();

如果我們這樣寫,我們應該對一些操作應用類型轉換。例如,對于密鑰提取。

System.out.println(((Hashtable) phoneBook).keySet());

為了避免這種情況,我們可以改變

Dictionary phoneBook = new Hashtable ();

Hashtable phoneBook = new Hashtable ();

在我們的示例中,為清楚起見,我們將保留第一個選項。

import java.util.Dictionary;
import java.util.Hashtable;
public class DictionaryDemo {
       public static void main(String[] args) {
           Dictionary phoneBook = new Hashtable();
           // put() method
           phoneBook.put("Johnny Walker", "2178");
           phoneBook.put("Andrew Arnold", "1298");
           phoneBook.put("Ivy Briggs", "1877");
           phoneBook.put("Ricky McBright", "2001");
           //print out Hashtable out
           System.out.println(phoneBook);
           //let's get the value using the key
           System.out.println(phoneBook.get("Ivy Briggs"));
           //there's no such key in out Hashtable
           System.out.println(phoneBook.get("Sol Frank"));
           //Is there a record with the "Johnny Walker" key?
           System.out.println(((Hashtable) phoneBook).containsKey("Johnny Walker"));
           //all keys of the Hashtable
           System.out.println(((Hashtable) phoneBook).keySet());
           //values from Hashtable
           System.out.println(((Hashtable) phoneBook).values());
           //the quantity of records
           System.out.println(phoneBook.size());
           //removing one record
           phoneBook.remove("Andrew Arnold");
           System.out.println(phoneBook);
       }
   }

輸出是:

{Andrew Arnold=1298, Johnny Walker=2178, Ricky McBright=2001, Ivy Briggs=1877}
1877
null
true
[Andrew Arnold, Johnny Walker, Ricky McBright, Ivy Briggs]
[1298, 2178, 2001, 1877]
4
{Johnny Walker=2178, Ricky McBright=2001, Ivy Briggs=1877}

HashMap 作為字典

HashMap與Hashtable不同,它不是Dictionary的直接后代。但是,由于許多特性,在大多數情況下,最好使用HashMap創建字典。HashMap類在功能上與Hashtable非常相似。主要區別在于Hashtable的方法是同步的,而HashMap不是。Hashtable中的同步會降低代碼的性能。另外,HashMap類,不像Hashtable, 允許使用 null 作為鍵(一個)和一組 null 作為值。在我們的例子中,程序看起來與上面的示例完全相同。唯一的區別在于集合的類型。但是,在大多數情況下,這是在 Java 中使用字典的首選方式。

import java.util.HashMap;
import java.util.Map;
public class DictionaryDemo2 {
   public static void main(String[] args) {
       Map<String, String> phoneBook = new HashMap<String,String>();
       phoneBook.put("Johnny Walker", "2178");
       phoneBook.put("Andrew Arnold", "1298");
       phoneBook.put("Ivy Briggs", "1877");
       phoneBook.put("Ricky McBright", "2001");
       System.out.println(phoneBook);
       System.out.println(phoneBook.get("Johnny Walker"));
       System.out.println(phoneBook.get("Ivy Briggs"));
       System.out.println(phoneBook.get("Unknown Friend"));
       System.out.println(phoneBook.containsKey("Johnny Walker"));
       System.out.println(phoneBook.containsKey("Unknown Friend"));
       System.out.println(phoneBook.keySet());
       System.out.println(phoneBook.values());
       System.out.println(phoneBook.size());
       phoneBook.remove("Andrew Arnold");
       System.out.println(phoneBook);
   }
}

這是輸出:

{Andrew Arnold=1298, Ivy Briggs=1877, Ricky McBright=2001, Johnny Walker=2178}
2178
1877
null
true
false
[Andrew Arnold, Ivy Briggs, Ricky McBright, Johnny Walker]
[1298, 1877, 2001, 2178]
4
{Ivy Briggs=1877, Ricky McBright=2001, Johnny Walker=2178}

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩在线视频网址 | 国产热久久精 | 国产精品图片 | 国产精品1区2区3区在线播放 | 毛片2016免费视频 | 欧美视频一区二区专区 | 四虎影城| 国产成人亚洲综合a∨婷婷 国产成人亚洲综合欧美一部 | 在线亚洲一区二区 | 日日夜夜精品免费视频 | 欧美日本黄色 | 国产一区精品在线 | 天天射夜夜骑 | 久久婷婷色综合老司机 | 久久九九有精品国产23百花影院 | 91精品专区| 久久综合九色综合欧美狠狠 | 日韩在线一区二区三区免费视频 | 三上悠亚在线一区 | 欧美精品久久久久久久小说 | 天天干狠狠操 | 免费刺激性视频大片区 | 国产精品三区四区 | 在线观看高清国产福利视频 | 日韩精品一区二区三区国语自制 | 久久精品国产无限资源 | 国产精品久久久久久久久免费hd | 亚洲精品人成无码中文毛片 | 亚洲综合在线观看一区www | 久久成人乱小说 | 99久久免费国产精品 | 日本成人不卡视频 | 91视频欧美 | 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 黄色网址在线免费 | 国产粉嫩白浆在线观看 | 青青青爽在线视频观看大全 | 国产精品一区二区三区四区五区 | 狠狠色丁香久久婷婷综合五月 | 色天使色婷婷丁香久久综合 | 亚洲精品久久久久影 |