【发布时间】:2016-01-08 13:13:53
【问题描述】:
我在 ArrayList1 中存储了一些 int 值(想象一个包含一列的表)。我需要创建另一个 ArrayList2(第二列),它将具有值,即 ArrayList1 中某个范围的最大值,例如最后 3 个值。例如:
1 null
2 null
1 2
3 3
2 3
1 3
因此,第二列 - ArrayList2 将包含 ArrayList1 中最后 3 个对应行的每一行的最大值。 (与 xls 相同,B3=MAX(A1:A3)...)。 我可以通过为每一行创建一个循环并找出最大值来做到这一点,或者我可以循环并创建 subArrayList 并使用 collections.max,但这两种解决方案都需要每一行都有一个循环,这不是很实用,没有更简单的方法吗?像 arrayList.max(1,3) 这样的东西可以直接得到数字吗?
【问题讨论】:
-
范围(最后 3 个值)是否为常数?
-
@sanbhat 我相信 OP 正在寻找一种方法,以防列表较长且最后一个最大值可能不是恒定的
-
我希望成为灵活的 3 号,如果我需要它是 200,例如在 100000 长的数组列表中,只需像我提到的 xls 函数那样坑一下
-
我有一个问题:arraylist2 中的第二行应该发生什么?为什么当我们从第一个数组列表的 {2,1,3} 中获得最大值 3 时它为空
-
反之,对不起,更不用说,它应该查找前 3 个,因为在第 2 行中没有前 3 个要查找,所以它从第 3 行开始,并查看第 1 行-3,同样的原则,如果我需要 100 个元素中的最大值,我可以在第 100 行中获得第一个值