• Skip to primary navigation
  • Skip to content
  • Skip to footer

DES GEEKS ET DES LETTRES

Blog depuis 2009

  • Facebook
  • Flickr
  • Instagram
  • Pinterest 
  • Flux RSS
  • Twitter

Navigation privée sur internet

VPN et navigation privée sur internet

  • Notre Blog
  • Comment utiliser un VPN
  • Aspirer les éléments d’un site
  • Un VPN c’est quoi ?
Le Vpn n°1 français

Simulation du ‘Order By’ SQL pour trier une Collection JAVA

Vous êtes ici: Des Geeks et des lettres / Programmation / Simulation du ‘Order By’ SQL pour trier une Collection JAVA

3 mars 2010 1 Comment

Exercice

Récupérer une liste de valeurs triée provenant d’une base de données est très simple grâce au mot clé SQL ORDER BY, ex :

[sql]SELECT a,b,c,d,e,f FROM ma_table ORDER BY a,c,e[/sql]

Qu’en est-il en Java pour trier nos listes de façon multiple ? Existe-t’il un tel mot clé ? non bien entendu. Cet article va vous présenter une façon de procéder en utilisant les méthodes sort() de la classe java.util.Collections ainsi qu’une classe de comparaison java.util.Comparator qui nous permettront ensemble d’appliquer des tris successifs à nos listes de type java.util.Collection (List, Vector, etc.).

Tri multiple

Tri unique

Si vous souhaitez trier votre liste de façon unique (tri par défaut), il suffit d’utiliser la méthode Collections.sort(votre_liste_dobjets) en considérant que les éléments de votre liste soient de type java.lang.Comparable, voici un exemple rapide :

[java] public class Essai {

public static void main(String[] args) {
List<VotreClasse> list = new ArrayList<VotreClasse>();
list.add(new VotreClasse("caméléon"));
list.add(new VotreClasse("uranium"));
list.add(new VotreClasse("pays"));
list.add(new VotreClasse("dentiste"));

Collections.sort(list);

for (VotreClasse vc : list) {
System.out.println(vc.getAttribut());
}
}
}

class VotreClasse implements Comparable<VotreClasse> {
private String attribut;

public VotreClasse(String attribut) {
this.attribut = attribut;
}

public int compareTo(VotreClasse classeToCompare) {
return attribut.compareTo(classeToCompare.attribut);
}

public String getAttribut() {
return attribut;
}
}
[/java]

Résultat

[plain] caméléon
dentiste
pays
uranium
[/plain]

Tris multiple

Contrairement au tri unique où l’interface Comparable suffit, appliquer plusieurs tris successifs est un peu plus compliqué, pour cela il vaut mieux utiliser une classe de comparaison de type Comparator, celle-ci, beaucoup plus souple, va nous permettre d’appliquer nos tris entre deux objets, exemple :

  • Classe de comparaison qui permet de trier par power puis par thougness puis par rarity puis par name (ORDER BY power, thoungess, rarity, name) :
[java] public class CardPowerComparator implements Comparator<CardRemote> {

public int compare(CardRemote card1, CardRemote card2) {
int powerCompare = card1.getPower().compareTo(card2.getPower());
int thougnessCompare = card1.getThougness().compareTo(card2.getThougness());
int nameCompare = card1.getName().compareTo(card2.getName());
int rarityCompare = card1.getRarity().getOrder().compareTo(card2.getRarity().getOrder());

int compared = powerCompare;
if (compared == 0) {
compared = thougnessCompare;
if (compared == 0) {
compared = rarityCompare;
if (compared == 0) {
compared = nameCompare;
}
}
}

return compared;
}
}
[/java]

  • Classe de vos objets à trier :
[java] public class CardRemote {

private String name;
private String power;
private String thougness;
private RarityRemote rarity;

// getters and setters</pre>
}
[/java]

  • Appel du tri :
[java] List<CardRemote> cardsRemoteList = … ;
Collections.sort(cardsRemoteList, new CardAllComparator());
[/java]

Category iconProgrammation Tag iconjava,  list,  multiple,  order by,  tri

Auteur – Mallory LEBEL

Mallory Lebel a été écrivain de romans avant de devenir entrepreneur web. Sa passion est l'écriture sur internet, quant à ses sujets ils vont de la confidentialité online au contrôle parental. Il est également le fondateur de Untelephone.com.


Utilisez notre moteur de recherche


Sur Des Geeks et des lettres nous vous conseillons les 2 VPN suivants :
  • d’une part parce qu’ils ne conservent pas du tout vos données de connexion
  • d’autre part parce qu’ils cryptent et sécurisent votre connexion en même temps qu’ils vous rendent anonymes
Flèche double bas
→ Le Vpn Français
→ Nord Vpn

Lisez aussi

Mon adresse ip

Pour bien connaître son adresse ip

Un ordinateur dehors

Plugins et extensions favorables ou destructeurs de mon anonymat en ligne

Reader Interactions

Comments

  1. Commentaire :

    4 mars 2010 at 13 h 11 min

    Thx pour l’article – Ding !

    Répondre

Laisser un commentaire Annuler la réponse

Nous vous conseillons Le Vpn n°1 français

Pour garantir votre confidentialité, assurez-vous d'avoir un VPN qui ne stocke pas les journaux en ligne. L'utilisation d'un service VPN sans journalisation devrait d'ailleurs être un must-have. Il vous protégera contre une surveillance gouvernementale et empêchera votre fournisseur d'accès Internet de connaître votre activité en ligne.

Sans aucune journalisation

Footer

Des Geeks et des lettres

Liberté sur internet

https://desgeeksetdeslettres.com/

Blog depuis 2009

Rechercher dans nos articles :

Pages utiles

  • Accueil
  • Contact
  • Blog
  • Mentions légales
  • Plan du site
  • Rubriques

A la une

  • Hide my ass
  • NordVpn
  • Hoxx Vpn
  • VPN Gate
  • VPN Opera
  • Thunder Vpn

Les auteurs

Présentation des auteurs

Newsletter

Les articles de notre blog directement dans votre messagerie.

  • Facebook
  • Flickr
  • Instagram
  • Pinterest 
  • Flux RSS
  • Twitter

Copyright © 2019 Des Geeks et des lettres Blog depuis 2009 Return to top