À l'aide de int vs Entier
Je suis tombé sur une classe à l'aide des variables de type Entier pour capturer taille à être utilisé dans une boucle for. Est-ce une bonne pratique ou devons-nous utiliser l'int type de données primitif?
Integer size = something.getFields().size();
for (Integer j = 0; j < size - 1; ++j)
- Double Possible: int ou un Entier
- la classe Integer est fourni de manière à ce que les valeurs peuvent être boxed/ "unboxed" dans un pur OO manière. utiliser int le cas échéant à moins que vous avez spécifiquement besoin de l'utiliser dans un OO façon; dans ce cas, Entier est approprié.
- double possible de int ou un Entier
Vous devez vous connecter pour publier un commentaire.
la classe Integer est fourni de manière à ce que les valeurs peuvent être boxed/"unboxed" dans un pur OO manière. utiliser int le cas échéant à moins que vous avez spécifiquement besoin de l'utiliser dans un OO façon; dans ce cas, Entier est approprié.
Java Int vs Entier
Une meilleure description de quand utiliser l'un contre l'autre:
Le choix entre int et Entier
Si vous pouvez utiliser
int
le faire. Si la valeur peut êtrenull
ou est utilisé comme un Objet, par ex. les médicaments Génériques, l'utilisationInteger
Habituellement, il n'est pas question que celle que vous utilisez, mais souvent
int
des performances légèrement meilleures.Integer#intValue(Integer)
etInteger#valueOf(int)
Integer.intValue()
😉 Avec auto-boxing et unboxing introduit dans Java 5.0, vous n'avez pas besoin de le faire.int
effectue pas seulement un peu, mais un ensemble beaucoup mieux, surtout dans les boucles serrées 🙂Cette approche n'est pas bon, dans la pratique, l'utilisation
int
chaque fois que possible. L'utilisation deInteger
indique que cette variable peut êtrenull
(ou c'était l'intérieur d'une collection, putain génériques...) - ce qui n'est pas le cas.Également à l'aide de
Integer
introduit une surcharge de boxing et unboxing.C'est un désastre potentiel en attente de se produire dans les grands projets. Le codeur ici oublié que chaque Entier est en fait un nouvel objet, et, de l'utiliser comme un int, il faut boxing et unboxing tout le temps. Il est non seulement inefficace, c'est aussi ne va pas fonctionner comme prévu. Vous êtes bien conseillé de toujours utiliser des int, si possible, et de n'utiliser Entier pour placer ces valeurs dans des listes, des conteneurs ou pour le stockage de base de données. Rappelez-vous, comparer des Objets à l'aide de >, < et == signifie quelque chose d'autre que lorsque vous utilisez les mêmes opérateurs de comparer primitives.
Promouvoir types primitifs toujours là où c'est possible.
types primitifs ne peut pas être utilisé comme GenericArgument ou une valeur null.
Ne les utiliser que pour la boucle. Utiliser le type primitif int (meilleure performance), qui n'est pas le même que celui de la Classe Integer.
Utilisez Entier si vous avez besoin d'appeler les fonctions entières ou de la nécessité d'attribuer une valeur null.
Vous aurez également besoin d'utiliser Entier au lieu de int pour les génériques comme la Liste
Quand il ya un besoin de l'aide d'objets, vous devez utiliser les classes Wrapper,
comme Integer, Double, Float, etc...
par exemple:
Ici, nous sommes à la conversion de la chaîne en un entier (type Primitif) ,
mais la méthode parseInt(String str) ne fonctionne que sur les classes Wrapper (c'est à dire de l'Objet),
nous avons donc utilisé... vous trouverez le plus grand nombre de l'utiliser de java.
Il peut y avoir une perte de performance due à boxing et unboxing, comme vous payer les frais généraux de la conversion entre le primitif et le type d'une référence.
Cependant, la classe Integer ajoute d'autres méthodes qui peuvent être très utiles.
J'utilise normalement Entier, car purement OO. La Performance de l'int est certainement beaucoup mieux que son objet homologue, mais il est visible uniquement lorsque vous êtes en boucle millions de fois dans la boucle.
À mon humble avis, Si la performance est d'une importance primordiale dans votre application et que vous souhaitez faire même un seul nano seconde puis utiliser int sans cerveau. Mais si OO et la lisibilité est la principale concernée, puis utilisez Entier.