Merci de ne pas me MP pour ton code.
Je comprend bien que tu veux passer un tableau de int et non de Integer mais c'est simplement pas possible en java, tu dois passer par une classe wrapper quand tu manipules des templates.
Les templates java ne sont applicables qu'aux objets et non aux types primitifs donc tu n'as pas le choix.
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Ben il est où le problème ? C'est dans l'instanciation de ta classe que tu précise si tu veux des int, des bytes, etc., par exemple :
TrieurNb trieur = new TrieurNb(); // pour travailler avec des int
TrieurNb trieur = new TrieurNb(); // pour travailler avec des byte
______________________________________
DarK Sidious
Vous n’avez pas trouvé la réponse que vous recherchez ?
quand je fais ce que dit [../auteur/DARKSIDIOUS/13557.aspx DARKSIDIOUS]
voila les erreur que j'ai:
TrieurNb.java:29: operator < cannot be applied to N,N
while(j>=0 && pere(j)>=0 && tab[pere(j)]<tab[j])
^
TrieurNb.java:37: operator < cannot be applied to N,N
while(j>=0 && pere(j)>=0 && tab[pere(j)]<tab[j])
^
TrieurNb.java:59: operator < cannot be applied to N,N
while(filsg(j) < i && tab[filsg(j)]<tab[j] || (filsd(j) < i && tab[filsd(j)]<tab[j]))
^
TrieurNb.java:59: operator < cannot be applied to N,N
while(filsg(j) < i && tab[filsg(j)]<tab[j] || (filsd(j) < i && tab[filsd(j)]<tab[j]))
^
TrieurNb.java:63: operator < cannot be applied to N,N
if((filsd(j) < i && tab[filsd(j)]<tab[j]) && filsd(j) < i)
^
TrieurNb.java:74: operator < cannot be applied to N,N
while(filsg(j) < i && tab[filsg(j)]<tab[j] || (filsd(j) < i && tab[filsd(j)]<tab[j]))
^
TrieurNb.java:74: operator < cannot be applied to N,N
while(filsg(j) < i && tab[filsg(j)]<tab[j] || (filsd(j) < i && tab[filsd(j)]<tab[j]))
^
TrieurNb.java:78: operator < cannot be applied to N,N
if((filsd(j) < i && tab[filsd(j)]<tab[j]) && filsd(j) < i)
^
TrieurNb.java:133: unexpected type
found : int
required: reference
TrieurNb t =new TrieurNb (true);
^
TrieurNb.java:133: unexpected type
found : int
required: reference
TrieurNb t =new TrieurNb (true);
^
10 errors
les templates sur les types primitifs (int, byte, char, long, float, short et double) ne fonctionne pas en java, il faut utiliser les classes wrapper (Integer, Byte, Character, Long, Float, Short et Double) après pour l'ajout ou la recup de types primitfs tu peux le faire simplement grâce à l'autoboxing.
ex :
List list = new ArrayList();
list.add(10);
int i = list.get(0);
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
/**
calcul l'indice ou se trouve le pere du fils passe en parametre
@param i indice du fils
*/
private int pere(int i)
{
return (i+1)/2 - 1;
}
/**
calcul l'indice ou se trouve le fils gauche du pere passe en parametre
@param i indice du pere
*/
private int filsg(int i)
{
return (2*i)+1;
}
/**
calcul l'indice ou se trouve le fils droit du pere passe en parametre
@param i indice du pere
@return
*/
private int filsd(int i)
{
return 2*(i+1);
}