有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过追加连接两个列表

我试过:

List splice(List l1, List l2){
    List l3 = new LinkedList();
    return l3;
}

List append(List l1, List l2) {
    List to_return = copy(l1);
    List l3 = copy(l2);
    while (true) {
        if (l3.isEmpty())
            return to_return;
        to_return = append1(to_return,hd(l3));
        l3 = tl(l3);
    }
}

接下来我该怎么办?如果我输入[1,2,3][a,b],我想得到[1,a,2,b,3]


共 (1) 个答案

  1. # 1 楼答案

    我不太懂你的代码,但你说

    If I input [1,2,3] and[a,b], I want to get[1,a,2,b,3].

    这可以通过以下方式实现:

    static <T> List<T> interleave(List<T> list1, List<T> list2) {
        List<T> newList = new ArrayList<T>();
        List<T> shortOne = list1.size() < list2.size() ? list1 : list2;
        List<T> longOne  = list1.size() < list2.size() ? list2 : list1;
        for (int i = 0; i < shortOne.size(); i++) {
            newList.add(list1.get(i));
            newList.add(list2.get(i));
        }
        for (int i = shortOne.size(); i < longOne.size(); i++) {
            newList.add(longOne.get(i));
        }
        return newList;
    }
    

    编辑

    根据您使用的List实现,本文中接受答案的方法可能更有效:Java: Interleave two integer based arraylists -> good approach?