如何高效地合并两个列表,一个按增加的顺序排序,另一个按减少的顺序排序。两个列表的长度不相同。
List1 = ["eight", "nine"] // first element "eight" should be the starting point
List2 = ["three", "six", "seven", "eight"] // last element "eight" should be the starting point
因此,最终结果将是:
c= ["eight", "eight", "nine", "seven", "six", "three"]
这并不是我自己的代码,但这是一个例子。在这里,所有列表都从每个列表的first-element
开始考虑。但我需要其中一个从first-element
到last-element
,而另一个从last-element
到first-element
。
List<String> a = [ "one", "two", "three", "four" ];
List<String> b = [ "fee", "fi" ];
List<String> c = [ "broccoli", "tomato", "potato" ];
List<String> d = [ "purple" ];
Iterator<String> interleaved = Iterators.interleave(
a.iterator(), b.iterator(),
c.iterator(), d.iterator() );
int count = 1;
while ( interleaved.hasNext() ) {
System.out.println( count++ + ": " + interleaved.next() );
}
Output:
1: one
2: fee
3: broccoli
4: purple
5: two
6: fi
7: tomato
8: three
9: potato
10: four
Collections.reverse()
,是这样吗? - AndreasIterators.interleave
guava
无法识别,尽管已经添加了 guava。 - JamalIterators.interleave()
还没有被实现。你也必须自己实现它。 - Andreas