首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将linkedlist添加到linkedlist

将linkedlist添加到linkedlist
EN

Stack Overflow用户
提问于 2012-11-17 00:17:15
回答 3查看 8.7K关注 0票数 1

我想设计一个指向另一个链表的链表,到目前为止,我在MyLinkedList类中有这个方法:

代码语言:javascript
复制
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,看起来像这样:

代码语言:javascript
复制
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的链表中。我该怎么做呢?我想过要用

代码语言:javascript
复制
strings1.addList(2, strings2); 

但是它不工作,它不会让我添加strings2到strings1我在想,如果我做了,输出应该是这样的: java,语言,艺术,麦片,碗,冷却器,菜鸟或类似的东西,请帮助!

EN

回答 3

Stack Overflow用户

发布于 2012-11-17 00:24:04

您的类中有一个接受单个节点的方法,只需对第二个列表调用此方法:

例如:

代码语言:javascript
复制
void addAll(int index, MyList<> second_list)
{
  for(Object o : second_list)
  {
    addList(index, o);
    ++index;
  }
}

上面基于for循环的范围可能无法工作,除非你的类实现了适当的接口,我是懒惰的-使用你的类支持的普通迭代……

票数 3
EN

Stack Overflow用户

发布于 2012-11-17 00:18:59

使用addAll(int index, Collection c)方法将这两个列表添加到一起。

代码语言:javascript
复制
strings1.addAll(startIndex, strings2);

您还必须实现类MyLinkedList的List接口。也不清楚你的MyLinkedList类是什么样子的?

票数 0
EN

Stack Overflow用户

发布于 2012-11-17 00:27:44

最简单的方法...

代码语言:javascript
复制
public void insertList(int index, List<String> list) {
    Collections.reverse(list);
    for (String str : list) {
        add(index, str);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13420351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档