有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

“电话目录”数据结构的java实现

我有一个电话簿,详细信息如下:

ABc -> 123 
bcd -> 345 
cda -> 523 
abc -> 678

因此,如果我想查看ABc个人的电话号码,我应该同时获得这两个号码。我们如何在java中实现这一点?表示哪种数据结构将是最好的


共 (1) 个答案

  1. # 1 楼答案

    如果您只是在寻找一些数据结构来处理此类数据,我将提供使用ArrayLists的HashMap如下所示:

    HashMap<String, ArrayList<Integer>> phoneNumber
    

    然后,您将能够为每个键分配一个动态数字数组(如[123, 678])(如"abc") 对于本例,代码如下所示:

    HashMap<String, ArrayList<Integer>> phoneNumber = new HashMap<String, ArrayList<Integer>>();
        String key = "abc";
        int value = 123;
        if (phoneNumber.containsKey(key)) {
            phoneNumber.get(key).add(value);
        } else {
            ArrayList<Integer> arrayList = new ArrayList<Integer>(1);
            arrayList.add(value);
            phoneNumber.put(key, arrayList);
        }
    

    此外,如果在这个例子中字母情况很重要,请考虑使用^ {CD3>}函数,这使得上面的第二行代码如下:

    String key = "abc".toLowerCase();