那麼將它複製如何訪問一個原始陣列的一部分,我知道有兩個類似的問題,但我的是不同的:不需要在Java
如何獲得基本數組的子集,而不復制呢?
爲什麼? 我必須閱讀許多大型「文件」(約20M)通過標準輸入讀取。這些文件內嵌有JPG文件。這些JPG文件用於一些計算。我需要保留原始文件,而我使用嵌入式JPG來決定保留原始文件。
爲此我想獲得字節數組(原始文件)的子集(JPG)。我想用第三方庫(OpenCV)使用這個子集數組。
最接近的解決方案是:Arrays.asList(array).subList(x,y)。 但是這個解決方案不適用於原始數組。我試圖通過不復制數組而不使用包裝類來提高性能。
真的沒有辦法抓取原始數組的子集嗎? (數組,位置,長度).toArray()返回原始完整字節數組。
編輯:對不起,忘記告訴你,我從設備而不是磁盤獲取這些文件。因此,我需要首先將整個事件記錄到記憶中。然後決定將它保存在磁盤上或不。
番石榴有'Ints.asList()'(對於其他原始類型相同)。 – shmosel
爲什麼要將整個文件首先讀入內存?只讀/跳到JPG部分,閱讀,然後做出您的決定。 – EJP
正如我所提到的,我需要決定保留基於JPG的一些屬性的整個事情。字節數組來自一個設備。我不想保存在磁盤上以減少磁盤上的IO負擔,因爲我將處理很多這樣的文件。也許是1000年。 – Genom