Archives par mot-clé : array

Trier une liste en Java

Publié dans Snippet | Laisser un commentaire
Collections.sort(myList, new MyComparator());

public class MyComparator implements Comparator<MyObject> {
    @Override
    public int compare(MyObject o1, MyObject  o2) {
        if (o1.getInt() == o2.getInt()) {
            return 0;
        }
        if (o1.getInt() < o2.getInt()) {
            return -1;
        }
        return 1;
    }
}

Trier un array en Javascript

Publié dans Snippet | Laisser un commentaire

Simple sort

var myArray = ["var2", "var1", "var3"];
console.log("Before:", myArray); // Output: "Before: ["var2", "var1", "var3"]"
myArray.sort();
console.log("After:", myArray); // Output: "After: ["var1", "var2", "var3"]"

More complex sort

var myComplexArray = [{"id":"3", "data":"var2"}, {"id":"2", "data":"var1"}, {"id":"1", "data":"var3"}];
console.log("Before:", myComplexArray ); // Output: "Before: [{"id":"3", "data":"var2"}, {"id":"2", "data":"var1"}, {"id":"1", "data":"var3"}]"
myComplexArray .sort(function(a, b){ return a.id < b.id; });
console.log("After:", myComplexArray ); // Output: "After: [{"id":"1", "data":"var3"}, {"id":"2", "data":"var1"}, {"id":"3", "data":"var2"}]"

Array en C/C++

Publié dans Snippet | Laisser un commentaire

Static

int anArray[] = { 1, 2 };
// OR
int anArray[2] = { 1, 2 };
// OR
int anArray[2];
anArray[0] = 1;
anArray[1] = 2;

Dynamic (C++)

int anArray = new int[2]
anArray[0] = 1;
anArray[1] = 2;

Et ne pas oublier la suppression :

delete[] anArrat;

Array en Java

Publié dans Snippet | Laisser un commentaire
String[] anArray = new String[10];
// OR
String[] anArray = {"Val1", "Val2"};

Générer un array de plus de 2 400 000 éléments

Publié dans PHP | Un commentaire

Peut-être avez-vous déjà essayé de créer un array très très grand. Moi oui. Mon problème c’est que les valeurs que contenaient mon array étaient aussi très grande. En fait j’ai essayé de générer un array contenant 2 600 000 éléments allant de 1 à 2 600 000.

Naïvement avec une boucle for

 $a_cle = array();
for($i=1;$i<=2600000;$i++) {
   $a_cle[] = $i;
}

Mais là… erreur : Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16 bytes) in /var/agence.php on line 52

Un peu plus malin avec range()

$a_cle = range(1, 2600000);

Mais là… erreur : Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16 bytes) in /var/agence.php on line 52

Futé avec array_flip

En fait, je me suis aperçu que ce dont j’avais besoin c’était des numéros que je pouvais prendre au hasard (mais jamais les mêmes) allant de 1 à 2600000, mais pas forcément d’un array avec les clés allant de 1 à 2600000 et les valeurs allant de 1 à 260000. Donc j’ai créé avec array avec des clés allant de 1 à 2600000 et des valeurs toutes à 1.

$a_cle = array_flip($a_cle);
$cle = array_rand($a_cle);
echo $cle; unset($a_cle[$cle]);

Vous me direz que j’aurai pu modifier le php.ini pour augmenter l’espace mémoire utilisable par PHP, mais :

  • je n’y avais pas accès
  • je ne savais comment faire à l’époque :p