String数组的#subList()的替代方案?

时间:2015-06-28 11:49:22

标签: java arrays string

所以我修改了一个API(用于命令管理)以使用String []而不是字符串列表。

我的问题在这里:strings.subList(1, strings.length) 因此,我需要将其更改为可以执行相同工作的其他替代方案。

我到底能在这做什么?

2 个答案:

答案 0 :(得分:2)

您无法获得一个数组,这是另一个数组的切片视图 - 但您可以在数组上创建列表视图,然后在其上使用子列表:

List<String> stringList = Arrays.asList(strings);
List<String> subList = stringList.subList(1, strings.length);

现在你无法将它传递给任何采用数组的东西,当然......

所以你的选择是:

  • 回到每个地方使用List<String> - 这是我的建议,因为集合类通常比数组更灵活
  • 对部分代码使用数组,但在其他地方使用集合类
  • 改为复制部分数组(例如,使用System.arraycopyArrays.copyOfRange

答案 1 :(得分:0)

如果您希望将数组的一部分复制到新数组中,我建议您使用Arrays.copyOfRange函数:

Arrays.copyOfRange(strings, 1, strings.length());

(看到Jon Skeet的回答,怯懦地溜走了)