在java中将一个链表添加到另一个链表
Posted
技术标签:
【中文标题】在java中将一个链表添加到另一个链表【英文标题】:Add a linked list to another linked list in java 【发布时间】:2012-11-15 23:18:18 【问题描述】:我正在尝试使用 MyLinkedList 类中名为 addList 的方法将链接列表添加到另一个链接列表。我坚持的是如何实现该方法,以便我可以将链表添加到我选择的索引位置的另一个链表中。
这是我在 MyLinkedList 中的内容:
public void addList(int index, E e)
if(index == 0)
addFirst(e);
else if (index >= size)
addLast(e);
else
Node<E> current = head;
for(int i = 1; i < index; i++)
current = current.next;
Node<E> temp = current.next;
current.next = new Node<E>(e);
(current.next).next = temp;
size++;
我知道这个方法行不通,我试过了。 在我的程序本身中,我有这些:
public class linkedlistwork
public static void main(String[] args)
MyLinkedList<String> alpha = new MyLinkedList<String>();
alpha.add("hello");
alpha.add("world");
alpha.add("this");
System.out.println(alpha);
MyLinkedList<String> beta = new MyLinkedList<String>();
beta.add("is");
beta.add("java");
beta.add("rocks");
System.out.println(beta);
alpha.addList(1, beta);
System.out.println(alpha);
正确的输出应该是这样的:
OUTPUT:
[hello, is, java, rocks, world, this]
我的程序无法运行,这一行出现错误
alpha.addList(1, beta);
在“测试版”部分,它说:
类 MyLinkedList 中的方法 addList 不能应用于给定类型; 必需:整数,字符串 找到:int,MyLinkedList 原因:实参MyLinkedList无法通过方法调用转换为String 其中 E 是一个类型变量: E 扩展类 MyLinkedList 中声明的 Object
我将如何修复我的方法以便正确使用它? 提前致谢!!
【问题讨论】:
能否添加向量定义? 我认为你需要你的 addList 方法来拥有泛型:public void <E> addList(int index, E e)
【参考方案1】:
在我看来,您的 addList 方法签名是问题所在。 它应该看起来像:
public void addList(int index, List<E> list)
【讨论】:
【参考方案2】:你需要有一个添加MyLinkedList<String>
的方法。这样的事情会做
public void addList(int index, MyLinkedList<E> beta)
//Somehow loop through the MyLinkedList, and do this.
add(index+i,beta(i));
【讨论】:
以上是关于在java中将一个链表添加到另一个链表的主要内容,如果未能解决你的问题,请参考以下文章