【问题标题】:Implement Array using linkedlist使用链表实现数组
【发布时间】:2018-09-26 11:43:36
【问题描述】:

这是在一次采访中被问到的。

你能在java中实现/创建一个类似于java中Array类的对象吗?

基本上我们应该能够像处理数组一样迭代对象,getValue()putValue() 方法应该能够直接处理所创建对象的索引。

ex: 下面的操作应该用创建的对象来执行。

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

给出的提示是使用linkedlist 数据结构。 简而言之,它类似于ArrayList 类实现。

谁能告诉我我们该怎么做?

【问题讨论】:

标签: java arrays list


【解决方案1】:

他问的是嵌套对象。请阅读装饰器模式。请看下面的例子。

public interface NodeInterface{

// your methods
}

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

   // your methods

}

每个节点都包含相同类型的嵌套对象。最后一个没有对象的对象指向一个空值。你可以遍历直到找到一个空值。

【讨论】:

    【解决方案2】:

    我问过一个类似的问题,之前已经回答过,它与节点和链表的概念有关。我的问题可以通过这个链接找到

    Problems understanding concept of nodes and linked list

    我接受了这个答案,因为它帮助我想象了链表的样子以及我的 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;
      }
    
    }
    

    显然你可以修改代码来存储你想要的任何东西,但这可能是面试官想要的。

    【讨论】:

      【解决方案3】:

      使用 LinkedList 应该是这样的:

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

      但是,我给你link for beginners,你可以在其中了解有关 java util 包的所有信息。祝你好运。

      【讨论】:

        猜你喜欢
        • 2012-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        • 2013-01-13
        • 2015-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多