我有一个电话簿,其中包含以下详细信息:
ABc -> 123
bcd -> 345
cda -> 523
abc -> 678
因此,如果我想查看ABc
个人的电话号码,我应该获得这两个号码。我们如何在java中实现这一点?是指哪种数据结构最好?
答案 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();