Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri de collection

8 réponses
Avatar
Thierry
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?

Je met un bout du code
Je voudrai par exemple trier listeCostCenter sur name

Merci
Thierry

Collection listeCostCenter = new ArrayList();
for (int i =0; i<tblCOSTCENTERLIST.getNumRows();i++ ) {
TableCOSTCENTERLIST myData = new TableCOSTCENTERLIST();
tblCOSTCENTERLIST.setRow(i);
myData.setCostCenter(tblCOSTCENTERLIST.getString("COSTCENTER") );
myData.setName(tblCOSTCENTERLIST.getString("NAME"));
myData.setDescript(tblCOSTCENTERLIST.getString("DESCRIPT"));
listeCostCenter.add(myData);
myData = null;
}

8 réponses

Avatar
gregg
Thierry wrote:
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?


Utilise la méthode "sort", pas besoin de ré-implanter l'algo de tri.
Pour ça, tu fais un Comparator se servant de ton critère de sélection
("name"), et voilà.

++
gregg

Avatar
Marc Petit-Huguenin
Thierry wrote:
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?

Je met un bout du code
Je voudrai par exemple trier listeCostCenter sur name

Merci
Thierry

Collection listeCostCenter = new ArrayList();
for (int i =0; i<tblCOSTCENTERLIST.getNumRows();i++ ) {
TableCOSTCENTERLIST myData = new TableCOSTCENTERLIST();
tblCOSTCENTERLIST.setRow(i);
myData.setCostCenter(tblCOSTCENTERLIST.getString("COSTCENTER") );
myData.setName(tblCOSTCENTERLIST.getString("NAME"));
myData.setDescript(tblCOSTCENTERLIST.getString("DESCRIPT"));
listeCostCenter.add(myData);
myData = null;
}






List listeCostCenter = new ArrayList();
...
Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {
public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});

Avatar
Thierry
Je ne peux pas utiliser Collections.sort(...) car listeCostCenter est de
type Collection et la methode sort attend un type List.

Thierry

"gregg" a écrit dans le message de news:
40d35635$0$27120$
Thierry wrote:
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?


Utilise la méthode "sort", pas besoin de ré-implanter l'algo de tri.
Pour ça, tu fais un Comparator se servant de ton critère de sélection
("name"), et voilà.

++
gregg



Avatar
Thierry
Ok, je change le type.

Il est donc plus judicieux d'utiliser List plutot que Collection ?

Par contre, la, je ne comprends pas.
Les signe < et > ne semble pas etre compris.

Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {
public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});


Merci

Thierry

"Marc Petit-Huguenin" a écrit dans le message de
news: 9FIAc.51598$
Thierry wrote:
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?

Je met un bout du code
Je voudrai par exemple trier listeCostCenter sur name

Merci
Thierry

Collection listeCostCenter = new ArrayList();
for (int i =0; i<tblCOSTCENTERLIST.getNumRows();i++ ) {
TableCOSTCENTERLIST myData = new TableCOSTCENTERLIST();
tblCOSTCENTERLIST.setRow(i);
myData.setCostCenter(tblCOSTCENTERLIST.getString("COSTCENTER") );
myData.setName(tblCOSTCENTERLIST.getString("NAME"));
myData.setDescript(tblCOSTCENTERLIST.getString("DESCRIPT"));
listeCostCenter.add(myData);
myData = null;
}






List listeCostCenter = new ArrayList();
...
Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {
public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});



Avatar
Olivier Thomann
Le Sat, 19 Jun 2004 00:13:58 +0200, "Thierry" a
Ok, je change le type.

Il est donc plus judicieux d'utiliser List plutot que Collection ?

Par contre, la, je ne comprends pas.
Les signe < et > ne semble pas etre compris.

Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {
public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});
C'est de la syntaxe 1.5 (type generique en java).


Fait simplement newComparator() {
...
}

et ca ira sans probleme.
--
Olivier


Avatar
Marc Petit-Huguenin
Thierry wrote:
Ok, je change le type.

Il est donc plus judicieux d'utiliser List plutot que Collection ?


La regle est de choisir le type le plus abstrait qui convient. List dans le
cas present.


Par contre, la, je ne comprends pas.
Les signe < et > ne semble pas etre compris.


Java 1.5. Voici la version 1.4, mais bon, c'est sense etre de
l'informatique, pas de l'archeologie :

Collections.sort(listeCostCenter, new Comparator() {

public int compare(Object o1, Object o2) {
return
((TableCOSTCENTERLIST)o1).getName().compareTo(((TableCOSTCENTERLIST)o2).getName());
}
});


Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {

public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});



Merci

Thierry

"Marc Petit-Huguenin" a écrit dans le message de
news: 9FIAc.51598$

Thierry wrote:

Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?

Je met un bout du code
Je voudrai par exemple trier listeCostCenter sur name

Merci
Thierry

Collection listeCostCenter = new ArrayList();
for (int i =0; i<tblCOSTCENTERLIST.getNumRows();i++ ) {
TableCOSTCENTERLIST myData = new TableCOSTCENTERLIST();
tblCOSTCENTERLIST.setRow(i);
myData.setCostCenter(tblCOSTCENTERLIST.getString("COSTCENTER") );
myData.setName(tblCOSTCENTERLIST.getString("NAME"));
myData.setDescript(tblCOSTCENTERLIST.getString("DESCRIPT"));
listeCostCenter.add(myData);
myData = null;
}






List listeCostCenter = new ArrayList();
...
Collections.sort(listeCostCenter, new Comparator<TableCOSTCENTERLIST>() {
public int compare(TableCOSTCENTERLIST o1, TableCOSTCENTERLIST o2) {
return o1.getName().compareTo(o2.getName());
}
});








Avatar
Thierry
Merci pour vos réponse.

Thierry

"Thierry" a écrit dans le message de news:
cavcna$5kq$
Bonjour,

Est il possible de trier les objets dans une collection ?
Faut il passer par un algo de tri classique ?

Je met un bout du code
Je voudrai par exemple trier listeCostCenter sur name

Merci
Thierry

Collection listeCostCenter = new ArrayList();
for (int i =0; i<tblCOSTCENTERLIST.getNumRows();i++ ) {
TableCOSTCENTERLIST myData = new TableCOSTCENTERLIST();
tblCOSTCENTERLIST.setRow(i);
myData.setCostCenter(tblCOSTCENTERLIST.getString("COSTCENTER") );
myData.setName(tblCOSTCENTERLIST.getString("NAME"));
myData.setDescript(tblCOSTCENTERLIST.getString("DESCRIPT"));
listeCostCenter.add(myData);
myData = null;
}






Avatar
Kupee
Marc Petit-Huguenin wrote:
Java 1.5. Voici la version 1.4, mais bon, c'est sense etre de
l'informatique, pas de l'archeologie :


Oui mais bon on est proche de la science fiction là (: