java 取数组的一部分_java – 获取数组的一部分而不创建新副本

我试图找到一个解决方案/解决方法来切片非常大的数组而不创建新的副本.这是我的问题.

假设我有一个大型的double / int,大小为1亿或更多.我在一个非常大的数组中存储了代表不同内容的许多不同数组,以显着节省内存使用量.因此,我没有100万个大小为100的阵列,而是拥有一个大小为1亿的阵列.我存储索引(开始和停止)以跟踪我的数据.

我希望得到数千个大小为100的切片.如果我使用方法Arrays.copyOfRange()来获取切片,它就会失败将所有内容放在一个大型数组中的目的,因为每个切片都是一个耗尽内存的新副本.

我有遗留代码(多年来写的超过100万行),它使用自己的数据(较小的数组).无法修改现有代码以使用大型数组中的索引(开始,结束).

如果我能以某种方式返回原始数组,使得返回的数组是一个引用(或假装是),其中索引0是原始大数组中的某个任意索引,它会很棒.

在C/C++中,我可以轻松返回一个指针,该指针具有调用代码可以使用的特定偏移量和长度.

我在Java中的选择是什么?

最佳答案 您最好的选择是将切片的索引存储在单独的结构中,例如存储这些索引的数组.

这样,您就不会将大型数组实例化为整个数据数组的分区.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值