Как создать связанный список с помощью HashMap в java? Я искал в Интернете, есть реализации с использованием структуры данных LinkedList. Интервьюер попросил меня реализовать его без использования структуры данных LinkedList, я пытался использовать HashTable, но в конце он сказал, что должен был сделать это с помощью HashMap.Как реализовать связанный список с помощью HashMap в java
Большое вам спасибо за ответы.
Я сделал это после прочтения ваших комментариев:
public class hashMap {
static Map<Integer, Integer> mMap = new HashMap<Integer, Integer>();
public static void main(String[] args) {
int a;
mMap.put(1, 2);
mMap.put(2, 3);
mMap.put(3, 4);
mMap.put(4, 7);
mMap.put(7, 8);
Scanner in = new Scanner(System.in);
System.out.println("Enter: ");
a = in.nextInt();
itera();
if(mMap.containsKey(a)) {
add.insert(a);
}
else if (!mMap.containsKey(a)) {
add.remove(a);
}
itera();
}
public static void itera() {
for (Iterator<Integer> iter = (Iterator<Integer>) mMap.keySet().iterator(); iter.hasNext();) {
int key = iter.next();
int sa = mMap.get(key);
System.out.println(key + " : " + sa);
}
}
static class add {
public static void insert(int a) {
int s = a-1;
int newKey = s;
int sa = mMap.get(a);
mMap.put(newKey, sa);
mMap.remove(a);
}
public static void remove(int a) {
int newa = a;
while(!mMap.containsKey(a)) {
a--;
System.out.println("while a: " + a);
}
mMap.put(newa, mMap.get(a));
mMap.put(a, newa);
}
}
}
Он просто вставляет и удаляет узлы в Linked List. Но есть проблемы, если некоторые ключи отсутствуют, например, 5 & 6 нет в ключах. Поэтому, если я попытаюсь вставить 6, это не сработает. Может ли кто-нибудь объяснить, что я делаю неправильно?
Нечего объяснять: 'HashMap' - это новый' HashTable' :) – dasblinkenlight
Я не знаю, почему вы использовали Hashtable, или даже как. Он должен был уйти в этот аспект, а не забирать классы сбора. – EJP
@ user2142511 .Сделайте его как класс и добавьте методы вставки и удаления. опубликуйте этот класс. и для объектов, которые вы храните в другом месте .u можете сделать это внутри ключа, пары объектов или использовать другой hashmap с ключом, значением. вставка будет простой и быстрой, получение будет простым и быстрым, потому что ваш связанный список будет использовать индексы. вставка в середине будет высокой стоимостью и удалением тоже. u вам нужно вставить, а затем обновить индексы других ключей .see https://en.wikipedia.org/wiki/Linked_list Ускорить раздел поиска за плюсы и минусы этого метода – qwr