Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Iterable从java中的自定义链表检索数据_Java_Data Structures - Fatal编程技术网

无法使用Iterable从java中的自定义链表检索数据

无法使用Iterable从java中的自定义链表检索数据,java,data-structures,Java,Data Structures,我在java中有一个自定义链表类,实现了Iterable接口。。我可以将数据添加到链表的头部。主要问题是我可以将数据添加到链表中,但我无法遍历整个链表 public类LL实现Iterable{ 专用节点头; /** *默认构造函数 * *@param头 */ 公共法律责任(){ 超级(); this.head=新节点(空); } /** *在此列表的开头插入新节点。 */ 公共无效添加节点(T数据){ Node newNode=新节点(数据,head.next); 头=新节点; //系统输出

我在java中有一个自定义链表类,实现了Iterable接口。。我可以将数据添加到链表的头部。主要问题是我可以将数据添加到链表中,但我无法遍历整个链表

public类LL实现Iterable{
专用节点头;
/**
*默认构造函数
* 
*@param头
*/
公共法律责任(){
超级();
this.head=新节点(空);
}
/**
*在此列表的开头插入新节点。
*/
公共无效添加节点(T数据){
Node newNode=新节点(数据,head.next);
头=新节点;
//系统输出打印项次(“添加”+表头数据);
}
/**
* 
*@param头
*@返回
*/
公共T getNode(){
返回头数据;
}
公共T getIthNode(int索引){

如果(index您的addNode始终使新节点成为列表的头,并且不引用前一个头,那么它将始终只有一个节点

将其更改为:

public void addNode(T data) {
    Node<T> newNode = new Node<T>(data, head);
    head = newNode;
    // System.out.println("Added " + head.data);
}
public void addNode(T数据){
Node newNode=新节点(数据,头部);
头=新节点;
//系统输出打印项次(“添加”+表头数据);
}

您应该删除行'head=newNode@PhamTrung但是新节点应该成为列表的标题,根据注释-
在列表的开头插入一个新节点
。除非您希望将构造函数创建的初始节点保留为标题,否则在这种情况下,代码将是
节点newNode=newNode(数据,head.next);head.next=newNode;
谢谢Eran,成功了。