In java, BigInteger è immutabile ma voglio capire perché, poiché molte volte è usato per fare molti calcoli che possono produrre molti oggetti. Quindi, sembra intuitivo non renderlo immutabile. La situazione che mi viene in mente è qualcosa di simile alle operazioni con le stringhe e quindi all'opzione di StringBuilder. Dovrebbe esserci una controparte non immutabile di BigInteger? Penso che potrebbe essere utile in molte situazioni.Perché BigInteger in java è progettato per essere immutabile?
Modifica: conosco i vantaggi dell'immutabilità e di come è vantaggioso in molti casi. Volevo solo capire i vantaggi di BigInteger. Ho usato BigInteger per calcolare fattoriali di grandi numeri. Quindi, avrei preferito un BigInteger mutabile. Allo stesso modo, BigInteger verrà utilizzato per i calcoli in cui il risultato è molto più grande di int. Per altri casi c'è BigDecimal.
È possibile utilizzare 'BitSet' come un' BigInteger '(ordinabile) mutabile. –
Gli oggetti di breve durata sono economici e gli oggetti immutabili hanno molti vantaggi. – chrylis
* "Penso che potrebbe essere utile in molte situazioni." * ... potrebbe essere importante per alcune situazioni critiche davvero super-performative, ma probabilmente non in tutte le situazioni complessive che si suppone. Ma, se si dispone davvero di un blocco di codice critico per le prestazioni profilattico, una classe compagna mutabile può essere la risposta. – scottb