0
votes

Quel est le point de la surcharge de la méthode trier dans les tableaux de classe

Je trouve que la méthode trier () dans la classe Les tableaux n'est pas identique à cause du type de paramètre, mais une logique est la même.

tel que lorsque le paramètre est long , la méthode est la même que le paramètre est entier . Alors, quel est le point de surcharge de la méthode. En d'autres termes, le code peut-être plus court mais pourquoi est-il conçu pour être si longtemps?


1 commentaires

Il n'y a pas de trier méthode où "le paramètre est long". Ne confondez pas long avec long [] .


3 Réponses :


1
votes

Si vous avez des tableaux entier int [] code> Vous ne pouvez pas les transmettre à Tableaux # Trier (long []) code> (et inversement) car ils sont différents types. Ainsi, vous avez besoin de signatures de méthode pour tous les types de matrices primitives. En outre, il n'y a pas de super type commun qui pourrait être utilisé comme type de paramètre.

contre-assessions: Si vous ne surchargez pas la méthode #sort code>, quels types de paramètres suggéreriez-vous utiliser pour La méthode #sort code> afin que vous puissiez passer à la fois int [] code> et long [] code> Types à trier? p>


// mise à jour après votre question dans les commentaires concernant la coulée: em> p>

Non, vous ne pouvez pas lancer de int [] code> à long [] code> ou vice versa. Le code suivant sera pas strud> compiler: p> xxx pré>

Ce que vous pouvez faire est ce que vous pouvez faire est ce qui suit (nécessite Java 8): P>

int[] myIntArray = {1, 2, 3};
long[] myCastedArray = Arrays.stream(myIntArray).asLongStream().toArray();

Arrays.sort(myCastedArray); // #sort(long[])


1 commentaires

Merci pour votre réponse. Mais ça ne va pas bien? Si le tableau est int [] , est jeté sur long ok?



-1
votes

Parce que le type d'éléments est différent, vous devez implémenter la méthode de tri en conséquence.

Le mot clé est polymorphisme ;)


0 commentaires

3
votes

Lorsque le paramètre est long, la méthode est la même que le paramètre est entier. P>

Ce n'est pas int code> et long code>, mais int [] code> et long [] code>. C'est important. p>

Par exemple, il existe une conversion primitive élargissant pour int code> et long code>. p>

int[] iA = {10, 10};
long[] lA = Arrays.stream(iA).asLongStream().toArray();


0 commentaires