获取Java数组部分视图

5
我参考了这篇文章 get only part of an Array in Java?,它使用了copyOfRange()方法。所以我瞥了一眼这个方法的源代码,它将指定数组的指定范围复制到一个新数组中。但我不想这么做,我希望获得一个数组的视图。
有没有什么方法可以实现这个需求呢?
1个回答

9

请参考您所提到的相同问题的这个答案。使用Arrays.asList()将数组包装起来,然后使用List.subList()

Integer[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

List<Integer> view = Arrays.asList(a).subList(3, 6);

for (int i = 0; i < view.size(); i++)
    view.set(i, view.get(i) * 10);

System.out.println(view);
System.out.println(Arrays.toString(a));

输出:

[30, 40, 50]
[0, 1, 2, 30, 40, 50, 6, 7, 8, 9]

但是,如果不先将整个数组装箱,您将无法包装基本类型的数组。


不错的发现。那个答案值得再多得几票。我也没注意到。 - Jason C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接