java - 添加链表到链表,JAVA

标签 java linked-list

我想设计一个链表到另一个链表,到目前为止我在 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++;
        }
    }

我被方法本身困住了,我的主程序有两个看起来像这样的 LinkedList:

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、语言、艺术、 Cereal 、碗、冷却器、菜鸟 或者类似的东西,请帮忙!

最佳答案

您的类中有一个接受单个节点的方法,只需根据第二个列表的需要多次调用该方法即可:

例如

void addAll(int index, MyList<> second_list)
{
  for(Object o : second_list)
  {
    addList(index, o);
    ++index;
  }
}

除非您的类已经实现了正确的接口(interface),否则上述基于范围的 for 循环可能无法工作,我很懒 - 使用您的类支持的正常迭代...

关于java - 添加链表到链表,JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420351/

相关文章:

c - Typedef 和节点

c - 在 C 中使用合并排序或快速排序对非常长的链表进行排序

java - 如何将第一组出现与正则表达式匹配?

java - 不允许使用波形符/控制台键的正则表达式

c - 链表 : remove all nodes whose next element has a larger value

c++ - 在多线程中消耗链表队列

c - 从指针链表中删除节点

java - Android:按键盘上的完成按钮

java - 在 Java 中创建 IM 客户端

java - 创建 Maven 项目时无法计算构建计划