-2

您能否指出一种在不使用 for 循环的情况下移动下面列表元素的方法?请注意,列表的第一个元素不受所执行操作的影响。从 [2, 3, 4, 5] 列表将变为 [2, 2, 3, 4]

List<BigDecimal> items = Arrays.asList(new BigDecimal(2), new BigDecimal(3), new BigDecimal(4), new BigDecimal(5));
for (int i = items.size() - 1; i >= 1; i--) {
    items.set(i, items.get(i - 1));
}
4

2 回答 2

0

您可以使用以下单线来做到这一点:

(items = Arrays.asList(items.get(0))).addAll(items);
于 2020-04-16T17:35:37.750 回答
0

来,试试这个。

  • 需要 subList 方法。(新的 ArrayList<>() 调用的原因)
  • 向左旋转 1 个项目。
        List<BigDecimal> items = new ArrayList<>(
                Arrays.asList(new BigDecimal(2), new BigDecimal(3),
                        new BigDecimal(4), new BigDecimal(5)));
        List<BigDecimal> list = items.subList(1, items.size());
        list.add(items.get(0));
        System.out.println(list);

印刷

[3, 4, 5, 2]
于 2020-04-16T17:58:49.150 回答