Ява: Что это значит для сопоставления строковых ключей? - PullRequest
0 голосов
/ 04 октября 2018

Мне дали это задание, когда инструктор попросил нас

    //Create a hash table where the initial storage
   //is 7 and string keys can be mapped to Q values

Мой вопрос: что означает отображение строки в значение Q?Извините, если это простой вопрос, но я очень новичок в этом.

Кроме того, я не уверен, изменит ли он ответ или нет, но в коде мы не можем использовать какую-либо библиотеку Java Collections, поэтому ядолжен кодировать это с нуля

1 Ответ

0 голосов
/ 04 октября 2018

Итак, первая точка создает HashMap с начальным хранилищем 7, под строкой создается HashMap с начальной емкостью 7, которая принимает String ключ типа и String значение типа

HashMap<String, String> map = new HashMap<String, String>(7);

Пример добавлениязначение ключа для HashMap

map.put("hello", "world");

В зависимости от того, что вам нужно создать HashMap с ключом типа String и значением типа Q, поэтому я считаю, что Q должен быть классом или интерфейсом

HashMap<String, Q> map = new HashMap<String, Q>(7);

Примечание: hashmap переопределит значение для дубликатов ключей

Если вы не хотите использовать Коллекции для этого, вам следует создать CustomHashMap с реализацией

class HashMapCustom<K, V> {

 private Entry<K,V>[] table;   //Array of Entry.
 private int capacity= 7;  //Initial capacity of HashMap

 static class Entry<K, V> {
     K key;
     V value;
     Entry<K,V> next;

     public Entry(K key, V value, Entry<K,V> next){
         this.key = key;
         this.value = value;
         this.next = next;
     }
 }

public HashMapCustom(){
   table = new Entry[capacity];
}

В приведенном выше коде по умолчанию начальная емкость равна 7 HashMapCustom<String, Q> hashMapCustom = new HashMapCustom<String, Q>();

Но все же вам нужно написать собственную логику для put, delete, get иМетоды, которые вам нужны.Я предлагаю вам проверить это ref1 , ref2

...