[英]Add linkedlist to linkedlist, JAVA
我想设计一个链表到另一个链表,到目前为止我在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++;
}
}
我坚持使用方法本身,我的主程序有两个看起来像这样的LinkedLists:
MyLinkedList<String> strings1 = new MyLinkedList<String>();
strings1.add("java");
strings1.add("language");
strings1.add("cooler");
strings1.add("noob");
System.out.println(list1);
MyLinkedList<String> strings2 = new MyLinkedList<String>();
strings2.add("artistic");
strings2.add("cereal");
strings2.add("bowl");
System.out.println(list2);
然后我想将string2的链表添加到string1的链表中。 我该怎么办? 我想过要用
strings1.addList(2, strings2);
但是它没有用,它不会让我把strings2添加到strings1我觉得输出看起来像这样,如果我做完了:java,语言,艺术,谷物,碗,冷却器,菜鸟或类似的东西,请帮忙!
您的类中有一个接受单个节点的方法,只需根据需要为第二个列表调用多次:
例如
void addAll(int index, MyList<> second_list)
{
for(Object o : second_list)
{
addList(index, o);
++index;
}
}
基于for循环的上述范围可能不起作用,除非你的类已经实现了正确的接口,我很懒 - 使用你的类支持的正常迭代...
使用方法addAll(int index, Collection c)
将两个列表一起添加。
strings1.addAll(startIndex, strings2);
你还必须为你的MyLinkedList类实现List接口..你的MyLinkedList类看起来还不是很清楚?
最简单的方式....
public void insertList(int index, List<String> list) {
Collections.reverse(list);
for (String str : list) {
add(index, str);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.