Sto provando a "ripulire" uno ByteBuffer
in modo che siano tutti a zero byte (tutti 0x00
). Ho provato ad eseguire il loop su tutte le posizioni nel buffer e impostarle su 0x00
, ma l'efficienza è negativa. C'è un modo migliore per cancellare rapidamente un ByteBuffer
- simile a quello che fa BitSet.clear()
?Cancellazione rapida (non chiara) a ByteBuffer in Java
Si prega di notare che ByteBuffer.clear()
non è una soluzione appropriata per me in questo scenario - Devo cancellare tutti i dati all'interno del buffer, e non solo ripristinare il puntatore all'inizio.
Eventuali suggerimenti?
Modifica: il ByteBuffer viene utilizzato come parte della tabella hash e mantiene i riferimenti delle voci della tabella hash. Ogni volta che la tabella hash deve essere scaricata, devo reimpostare le voci della tabella hash per l'inserimento successivo della tabella hash. Poiché si accede alla tabella hash in modo casuale, non posso semplicemente cancellare() lo stato del buffer di byte.
Puoi spiegare il caso d'uso in maggior dettaglio? Da cosa ottieni il bytebuffer? – jontro
Perché pensi di dover azzerare il buffer? – EJP
È un buffer diretto? In caso contrario, per quanto riguarda 'ByteBuffer.wrap (new byte [123456]);' –