起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java编程语言大全:如何在Java中创建字典

Java编程语言大全:如何在Java中创建字典

时间:2022-06-08 14:16:52来源:IT培训网 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java编程语言大全

前言: 如果需要在Java程序中创建字典,解决这个问题最合乎逻辑的方法就是使用字典数据结构。这种数据结构允许您以键

如果需要在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}

 

文章出自:http://qh.itpxw.cn/peixun/software/2022121591.html

文章标题:Java编程语言大全:如何在Java中创建字典



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容