2015-01-10 3 views
-2

У меня есть телефонный справочник с подробной информацией, как это:Реализация структуры данных для «телефонного справочника»

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

Так что, если я хочу, чтобы увидеть номера телефонов ABc человека, я должен получить оба номера. Как мы можем реализовать это в java? означает, что структура данных будет лучшей?

+0

Пожалуйста, больше времени, отправляя вопрос здесь и попытаться продемонстрировать некоторые знания в отношении проблемы, которую вы пытаетесь решить. – Maroun

+0

@MarounMaroun well pls советуют для решения, которое я пробовал таким образом. Создайте таблицу символов с парами KEY, VAL. VAL может быть связанным списком строк. При добавлении новой пары KEY, VAL в таблицу символов, если присутствует KEY, добавьте VAL в уже существующий VAL. Во время запроса, заданной строкой s, возвращайте VAL для данного KEY = s, к которому существует КЛЮЧ, возвращайте null в противном случае. – user2035385

+0

Это спецификация. Почему бы вам не начать его кодировать? – keyser

ответ

1

Если вы просто ищете какие-либо структурыданных для обработки такого рода данных, я предложу, используя HashMap из ArrayLists так:

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(); 
Смежные вопросы