这是在采访中问到的。
您能否在Java中实现/创建类似于Java中的Array
类的对象。
基本上,我们应该能够像处理数组一样迭代对象,并且getValue()
或putValue()
方法应该能够直接对创建的对象的索引进行操作。
ex:以下操作应在创建的对象上执行。
int ar[] = new int[5];
for(int i=0; i<5; i++){
ar[i]=i;
}
给出的提示是使用linkedlist
数据结构。
简单来说,它类似于ArrayList
类的实现。
谁能给我一个主意,我们该怎么做?
答案 0 :(得分:1)
他在问嵌套对象。请阅读有关装饰器模式的信息。请参见下面的示例。
public interface NodeInterface{
// your methods
}
public class Node implements NodeInterface{
private NodeInterface node = null;
// your methods
}
每个节点都包含相同类型的嵌套对象。没有对象的最后一个对象指向null。您可以遍历直到找到空值。
答案 1 :(得分:0)
我问过一个类似的问题,在回答之前,它与节点和链接列表的概念有关。通过以下链接可以找到我的问题
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;
}
}
很显然,您可以修改代码以存储所需的任何内容,但这可能正是访问者所需要的。
答案 2 :(得分:-1)
使用LinkedList,它应该看起来像:
LinkedList<Integer> linkedList = new LinkedList<>();
for(int i=0; i<5; i++){
linkedList.add(i);
}
但是,我给您一个link for beginners,您可以在其中学习有关Java util软件包的所有信息。祝你好运。
答案 3 :(得分:-1)
您可以使用HashMap。以key作为数组的索引。值作为array [index]。 如果在地图上找不到索引。返回0或任何默认值。 对于默认值,您可以使用hashmap的null键。