5

我有一个大小为 N 的 ArrayList l1 和另一个大小为 L < N 的 l2。我想将 l1 的 L 第一项放在 l2 中。我想使用 for(Object obj : l1) 类型的 for 循环来扫描我的大小 N 列表,然后使用 l2.add(obj) 在 l2 上添加元素,但我不确定何时达到最大大小l2 的(即 L)停止插入项目或继续。

有人可以建议我这样做吗?谢谢

4

3 回答 3

21

您可以使用List.subList(int, int)方法获取前 L 个项目

int L = 2;

List<String> newList = new ArrayList<>(inputList.subList(0,L));
于 2013-08-19T12:07:37.960 回答
11

类似于以下内容:

    list2.addAll(list1.subList(0, l));
于 2013-08-19T12:09:15.877 回答
0

使用 System.arraycopy()

这里有一个例子:

package test_temp;

public class TestArrayCopy
{

  public static void main(String[] args) {
    String[] SRC = {"Hello", "all", "you", "happy", "taxpayers"};
    int dimN = SRC.length;
    int dimL = 4;
    String[] dest = new String[dimL];
    System.arraycopy(SRC, 0, dest, 0, Math.min(dimN, dimL));
    for (int i = 0; i < dimL; i++) System.out.println(dest[i]);
  }

}

这将给出以下输出:

Hello
all
you
happy

希望这是你所期望的?

于 2013-08-19T12:17:08.670 回答