Permuter deux nombres sans variable intermédiaire

Il est courant dans les cours de programmation d’avoir un exercice où l’on demande de permuter deux variables. Bien souvent, on utilise une variable intermédiaire. Mais il est tout à fait possible de s’en passer. Si cela présente peu d’intérêt niveau optimisation, en voici la démonstration en guise de challenge.

Lire la suite

Les inner class (question de certification OCJP)

Si vous avez contemplé passer la certification OCJP (anciennement SCJP) vous avez certainement rencontré des questions test qui vous ont fait réflêchir. Un exemple est le code ci-dessous dont on demande la sortie.

class MyClass
{
    public static void main (String[] args)
    {
        String s = "whizlab";
        System.out.println(s);
    }
   
    public class String
    {      
        public String(String s)
        {
            System.out.println("simulator");
        }
    }
}

What is the output?

A. whizlab simulator
B. whizlab
C. Compilation error
D. None of the above

Lire la suite

Limitation du nombre d’instances d’une classe

Dans un groupe Java sur Facebook une personne a demandé comment s’y prendre pour limiter le nombre d’instances d’une classe donnée. On pourrait imaginer que cela serve dans des cas de figures où on a besoin d’un nombre limité de « jetons », par exemple dans un environnement client-serveur.

A titre d’exercice je me suis amusé à programmer une solution. Sans nécessairement être parfaite, elle démontre comment traduire cette contrainte.

Lire la suite

Un Filefilter reprenant plusieurs extensions de fichier

Avec le JFileChooser de Swing il est possible d’ajouter des FileFilter pour filtrer la liste de fichiers affichés.

Cet article va décrire un FileFilter personalisé capable de filtrer selon plusieurs extensions de fichiers. Cela peut être utile si un format de fichier peut avoir plusieurs extensions ou si on souhaite regrouper plusieurs extensions sous un même nom (ex: images, sons, archives ).

Lire la suite

Créer des instances à travers un enum

Le plus souvent un enum sert à reprendre une liste de constantes que l’on peut notamment utiliser de manière sémantique lors du passage de paramètres (ex: Color.white). Mais en Java il existe d’autres possibilités dont une manière pratique pour créer des instances que je vais décrire dans cet article.

Lire la suite