Je comprends que les deux Java.lang.Long
et Java.math.BigInteger
peut contenir de très grands nombres naturels.
Je connais aussi la valeur maximale de Long, mais quelle est la valeur maximale pour BigInteger?
Et en dehors de la capacité, BigInteger aurait-il un meilleur rendement lorsque l'on travaille avec des entiers généralement grands qui restent dans la plage de Long?
Est-ce la seule considération: ma valeur est-elle trop grande pour Long?
BigInteger est capable de contenir des nombres beaucoup plus grands que Long. BigInteger semble capable de contenir (2 ^ 32) ^ Integer.MAX_VALUE, bien que cela dépende de l'implémentation (et, même si vraiment illimité dans l'implémentation, il y aura éventuellement une limite de ressources physiques) Voir l'explication ici =.
La plage de Long
est [-9,223,372,036,854,775,808, +9,223,372,036,854,775,807].
Long fonctionnera mieux que BigInteger, donc cela dépend vraiment de la taille de vos valeurs. S'ils tombaient tous sous la valeur maximale de Long, cela n'aurait aucun sens de ne pas utiliser Long. Si l'un d'entre eux est supérieur à la valeur Long max, vous devez utiliser BigInteger.