Реализация массива с использованием связного списка - PullRequest
0 голосов
/ 26 сентября 2018

Это было задано в интервью.

Можете ли вы реализовать / создать объект в Java, который похож на класс Array в Java.объект, который мы делаем с массивами и методами getValue() или putValue(), должен иметь возможность напрямую работать с индексом созданного объекта.

ex: операция ниже должна выполняться с созданным объектом.

int ar[] = new int[5];
for(int i=0; i<5; i++){
     ar[i]=i;
}

Намек был дан для использования linkedlist структуры данных.Проще говоря, это похоже на реализацию класса ArrayList.

Кто-нибудь может дать мне идею, как мы можем это сделать?

Ответы [ 4 ]

0 голосов
/ 27 сентября 2018

Он спрашивал о вложенных объектах.пожалуйста, прочитайте о шаблоне декоратора.см. пример ниже.

public interface NodeInterface{

// your methods
}

public class Node implements NodeInterface{
    private NodeInterface node = null;

   // your methods

}

Там каждый узел содержит вложенный объект того же типа.последний объект, у которого нет объекта, указывает на ноль.Вы можете пройти, пока не найдете ноль.

0 голосов
/ 26 сентября 2018

Я задал похожий вопрос, на который был дан ответ, и он связан с концепцией узлов и связанного списка.Мой вопрос можно найти, перейдя по этой ссылке

Проблемы с пониманием концепции узлов и связанного списка

Я принял ответ, потому что он помог мне визуализировать, как будет выглядеть связанный списоккак и как будет выглядеть мой класс Node.

Когда вы создаете объект узла, вы можете затем создать пользовательские классы для изменения значения того, что хранит этот узел, а также для извлечения и отображения сохраненных данных.в узле.

Класс узла будет выглядеть примерно так

public class Node{

  private int val;
  private Node node;

  public Node(int val){
      this.val=val;
  }

  public Node(Node node, int val){
      this.node = node;
      this.val = val;
  }

  public Node getNext(){
      return node;
  }

  public int getVal(){
      return val;
  }

}

Очевидно, что вы можете изменить код, чтобы хранить все, что вы хотите, но это, вероятно, то, что искали интервьюеры.

0 голосов
/ 26 сентября 2018

Вы можете использовать HashMap.Возьмите ключ в качестве индекса массива.значение как массив [индекс].если индекс не найден в карте.вернуть 0 или любое значение по умолчанию.В качестве значения по умолчанию вы можете использовать нулевой ключ hashmap.

0 голосов
/ 26 сентября 2018

Используя LinkedList, он должен выглядеть следующим образом:

LinkedList<Integer> linkedList = new LinkedList<>();
for(int i=0; i<5; i++){
     linkedList.add(i);
}

Однако я даю вам ссылку для начинающих , в которой вы можете узнать все о пакете java util.Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...