实施"电话簿"的数据结构

时间:2015-01-10 14:35:24

标签: java collections

我有一个电话簿,其中包含以下详细信息:

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

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

1 个答案:

答案 0 :(得分:1)

如果你只是在寻找一些数据结构来处理这类数据,我将提供像这样的阵列列表的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);
    }

此外,如果字母大小写在此示例中很重要,请考虑使用String.toLowerCase()函数,这将使上面的第二行代码如下:

String key = "abc".toLowerCase();