在Groovy中将两个列表的内容交替合并到一个列表中

泰耶布尔

我想将两个列表的内容交替合并到一个新列表中。列表的长度是不确定的。我正在使用下面的代码来实现这一目标。我想知道,是否有任何不使用所有条件和循环的方法来实现这一目标。目的是使用常规功能尽可能缩短代码。

def combineList(ArrayList list1, ArrayList list2){
    def list = [];
    int j = k = 0;
    def size = (list1.size() + list2.size());
    for (int i = 0; i < size; i++) {
        if(j < list1.size())
            list.add(list1.get(j++));
        if(k < list2.size())
            list.add(list2.get(k++));
    }
    println list;
}

输入:

情况1:

combineList([1,2,3,4,5,6,7,8,9,0], ['a','b','c','d','e','f'])

情况2:

combineList([1,2,3,4], ['a','b','c','d','e','f'])

输出:

情况1:

[1, a, 2, b, 3, c, 4, d, 5, e, 6, f, 7, 8, 9, 0]

情况2:

[1, a, 2, b, 3, c, 4, d, e, f]
玛哈帕特罗

多种方式之一:

List combineList(List one, List two) {
    def result = [one, two].transpose()
    ( result += (one - result*.get(0)) ?: (two - result*.get(1)) ).flatten()
}

assert combineList([1,2,3,4], ['a','b','c','d','e','f']) == [1, 'a', 2, 'b', 3, 'c', 4, 'd', 'e', 'f']
assert combineList([1,2,3,4,5,6,7,8,9,0], ['a','b','c','d','e','f']) == [1, 'a', 2, 'b', 3, 'c', 4, 'd', 5, 'e', 6, 'f', 7, 8, 9, 0]
assert combineList([1,2,3,4], ['a','b','c','d']) == [1, 'a', 2, 'b', 3, 'c', 4, 'd']

解释:

  • 转置列表会产生类似的列表[[1, a], [2, b], [3, c]]
  • 接下来检查列表中的任何一个是否剩余任何剩余元素。
    • 这是通过检查是否对任何元素进行减号运算来完成的。从结果列表中获取所有第一个元素以检查第一个列表参数,类似地,从结果列表中获取第二个元素以检查作为参数传递给方法的第二个列表。
  • 如果存在,则将它们添加到结果中
  • 最后,将结果展平

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python中将两个列表合并到另一个列表

来自分类Dev

foreach:如何在多个迭代中将两个矩阵合并到一个列表中?

来自分类Dev

将R中的两个列表合并到一个数据框中

来自分类Dev

将两个并行任务的结果合并到一个列表中

来自分类Dev

将两个时间序列对象(ts)列表合并到一个新的列表中

来自分类Dev

Java。如何将两个最初排序的队列合并到一个队列中?(没有链接列表或其他内容)

来自分类Dev

Python 将来自两个不同文件的行合并到一个列表中

来自分类Dev

将两个文件的内容合并到bash中的一个文件中

来自分类Dev

将两个分区的内容合并到一个单独的分区中

来自分类Dev

在R中将一个列表中的矩阵合并到另一个列表中的矩阵

来自分类Dev

将两个带有数据框的列表合并到一个带有合并数据框的列表中

来自分类Dev

将两个列表合并到字典中,一个包含重复元素,一个包含整数

来自分类Dev

整理或交替将两列合并为 R 中的一个列表

来自分类Dev

将两个等长列表合并到字典中,一对多映射

来自分类Dev

将两个等长列表合并到字典中,一对多映射

来自分类Dev

如何将两个列表统一合并到字典中

来自分类Dev

在Python中将多个变量结果合并到一个列表中

来自分类Dev

在Python中将两个列表元素合并为一个?

来自分类Dev

将多个ObservableList合并到一个列表中

来自分类Dev

将对象合并到一个列表中

来自分类Dev

创建一个新列,以合并列表中其他两个列的内容

来自分类Dev

如何将两个列表合并到python的列表列表中?

来自分类Dev

将两个列表合并为一个

来自分类Dev

如何在Groovy中合并两个列表的索引?

来自分类Dev

将输出合并到一个列表中(不合并列表列表)

来自分类Dev

Scala-以交替方式合并两个列表

来自分类Dev

Dart以交替方式合并两个列表

来自分类Dev

Python以交替方式合并两个长度不等的列表

来自分类Dev

比较两个不同工作表之间的Excel Windows 7中的帐户并合并到一个列表中

Related 相关文章

  1. 1

    在Python中将两个列表合并到另一个列表

  2. 2

    foreach:如何在多个迭代中将两个矩阵合并到一个列表中?

  3. 3

    将R中的两个列表合并到一个数据框中

  4. 4

    将两个并行任务的结果合并到一个列表中

  5. 5

    将两个时间序列对象(ts)列表合并到一个新的列表中

  6. 6

    Java。如何将两个最初排序的队列合并到一个队列中?(没有链接列表或其他内容)

  7. 7

    Python 将来自两个不同文件的行合并到一个列表中

  8. 8

    将两个文件的内容合并到bash中的一个文件中

  9. 9

    将两个分区的内容合并到一个单独的分区中

  10. 10

    在R中将一个列表中的矩阵合并到另一个列表中的矩阵

  11. 11

    将两个带有数据框的列表合并到一个带有合并数据框的列表中

  12. 12

    将两个列表合并到字典中,一个包含重复元素,一个包含整数

  13. 13

    整理或交替将两列合并为 R 中的一个列表

  14. 14

    将两个等长列表合并到字典中,一对多映射

  15. 15

    将两个等长列表合并到字典中,一对多映射

  16. 16

    如何将两个列表统一合并到字典中

  17. 17

    在Python中将多个变量结果合并到一个列表中

  18. 18

    在Python中将两个列表元素合并为一个?

  19. 19

    将多个ObservableList合并到一个列表中

  20. 20

    将对象合并到一个列表中

  21. 21

    创建一个新列,以合并列表中其他两个列的内容

  22. 22

    如何将两个列表合并到python的列表列表中?

  23. 23

    将两个列表合并为一个

  24. 24

    如何在Groovy中合并两个列表的索引?

  25. 25

    将输出合并到一个列表中(不合并列表列表)

  26. 26

    Scala-以交替方式合并两个列表

  27. 27

    Dart以交替方式合并两个列表

  28. 28

    Python以交替方式合并两个长度不等的列表

  29. 29

    比较两个不同工作表之间的Excel Windows 7中的帐户并合并到一个列表中

热门标签

归档