Написать «сжатый» массив для увеличения производительности ввода-вывода?

У меня есть массив int и float длиной 220 миллионов (исправлено). Теперь я хочу сохранить / загрузить эти массивы в / из памяти и диска. В настоящее время я использую JavaC NIO FileChannel и MappedByteBuffer для решения этой проблемы. Он отлично работает, но занимает около 5 секунд (время настенных часов) для сохранения / загрузки массива в / из памяти на диск. Теперь я хочу сделать это быстрее.

Здесь я должен упомянуть, что большинство из этих элементов массива равны 0 (почти 52%).

лайк:

int arr1 [] = { 0 , 0 , 6 , 7 , 1, 0 , 0 ...}

Кто-нибудь может мне помочь, есть ли хороший способ улучшить скорость, не сохраняя и не загружая эти 0? Это можно компенсировать с помощью Arrays.fill (array, 0).

Ответы на вопрос(4)

Ваш ответ на вопрос