【问题标题】:How to interleave two arrays into a new array如何将两个数组交错成一个新数组
【发布时间】:2020-07-20 04:55:24
【问题描述】:
  • 创建一个新的列表,其中包含交错的 list1 元素
  • 使用 list2 的元素。例如,如果 list1 成立
  • 和 list2 包含 ,
  • 那么新列表应该保留
  • 。交替
  • list1 和 list2。如果一个列表较长,则新列表将包含所有
  • 末尾较长列表中的额外值。例如,如果 list1
  • 持有 并且 list2 持有
  • 那么新列表应该保留
  • .

我编程很烂,看不到这个作业最后一部分的逻辑。感谢您花时间看这个。 //*

private static List<String> mergeLists(List<String> list1, List<String> list2) {
    long max = Math.max(((File) list1).length(),((File) list2).length());
    ArrayList<String> newlist = new ArrayList<String>();
    for (int i = 0; i < max; i++) {
        if (i < list1) {
            newlist.append(list1[i]);
            {
        if (i < list2) {
            newlist.append(list2[i]);
        }
    }


            return newlist; 
        }
    }
}

【问题讨论】:

  • 您的实际问题是什么?
  • @MadPhysicist 我无法让这段代码工作。我需要它来创建一个新的数组列表并交错来自两个不同数组列表的元素。
  • @MadPhysicist Dang 生病尝试更好地发布它或只是跳到重新编辑。如何删除此问题?
  • 如果建议编辑问题。我怀疑如果提出一个措辞恰当的问题,你会在这里得到很好的帮助。

标签: java arrays list append interleave


【解决方案1】:

你肯定有正确的想法,你几乎明白了。猜猜你不会那么擅长编程:)。您可以为此使用 List 的属性,而无需转换为 File

    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("over");
        list1.add("river");
        list1.add("through");
        list1.add("woods");

        List<String> list2 = new ArrayList<>();
        list2.add("the");
        list2.add("and");

        mergeLists(list1, list2);
    }

    private static List<String> mergeLists(List<String> list1, List<String> list2) {

        // Get the max length of both arrays
        int max = Math.max(list1.size(), list2.size());

        // Initialize new list
        List<String> newList = new ArrayList<>();

        // add an element of the first list to the new list (if there are more elements)
        // and then add an element from the second list to the new list (if there are more elements)
        // and repeat...
        for (int i = 0; i < max; i++) {
            if (i < list1.size()) {
                newList.add(list1.get(i));
            }

            if (i < list2.size()) {
                newList.add(list2.get(i));
            }
        }

        System.out.println(newList);
        return newList;
    }

【讨论】:

  • 太完美了!感谢您的帮助和时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多