Collections

List

  List myList = new ArrayList ();
  String s1 = "Hello1";
  String s2 = "Hello2";
  myList.add(100);
  myList.add(s1);
  myList.add(s2);
  myList.add(s1);
  myList.add(1);
  myList.add(2, "World");
  myList.set(3, "Yes");
  myList.add(null);
  System.out.println("Size:" + myList.size() );
int pos = myList.indexOf(100);
int pos2 = myList.lastIndexOf(s2); // return −1 if no match was found.
for (Object object : myList) 
{
   System.out.println(object);
}


     Iterator iterator = myList.iterator();
     while (iterator.hasNext () ) 
     {
         String element = (String) iterator.next ();
         System.out.println(element);
     }


This is identical to:

     for (Iterator iterator = myList.iterator(); iterator.hasNext (); ) 
     {
          String element = (String) iterator.next();
          System.out.println(element);
     }

The for statement in JDK 5 has been enhanced. It can iterate over a Collection without the need to call the iterator method. The syntax is

     for (Type identifier : expression) 
     {
         statement (s)
     }

Set

List without duplicates

The add method of Set returns false if you try to add a duplicate element.
Set set = new HashSet ();
     set.add ("Hello");
     if (set.add ("Hello")) {
         System.out.println ("addition successful");
     } else {
         System.out.println ("addition failed");
     }

Queue

     Queue queue = new LinkedList ();
     queue.add("one");
     queue.add("two");
     queue.add ("three");
     System.out.println(queue.remove () );
     System.out.println(queue.remove () );
     System.out.println(queue.remove () );

The code produces this result:

     one
     two
     three

Map

 Map map = new HashMap();
     map.put ("1", "one");
     map.put ("2", "two");

     System.out.println(map.size() ); //print 2
     System.out.println(map.get("1") ); //print "one"

     Set keys = map.keySet();

     // print the keys
     for (Object object : keys) {
         System.out.println(object);
     }

Ma collection

public class Elephant implements comparable 
{
          public float weight;
          public int age;
          public float tuskLength;
          **public int compareTo(Object obi)** 
          {
              Elephant anotherElephant = (Elephant) obj;
              if (this.weight > anotherElephant.weight) 
              {
                  return 1;
              }
              else if (this.weight < anotherElephant.weight) 
              {
                      return -1;
              }
              else 
              {
                      // both elephants have the same weight, now
                      // compare their age
                      return (this.age - anotherElephant.age);
              }

           }
     }
     public class ElephantTest 
     {
         public static void main(String[] args) 
         {
             Elephant elephant1 = new Elephant ();
             elephant1.weight = 100.12F;
             elephantl.age = 20;
             Elephant elephant2 = new Elephant ();
             elephant2.weight = 120.12F;
             elephant2.age = 20;
             Elephant elephant3 = new Elephant ();
             elephant3.weight = 100.12F;
             elephant3.age = 25;
             
             Elephant[] elephants = new Elephant[3];
             elephants[0] = elephant1;
             elephants[1] = elephant2;
             elephants[2] = elephant3;
             
             System.out.println("Before sorting");
             for (Elephant elephant : elephants) {
                 System.out.println(elephant.weight + ":" +
                         elephant.age);
             }
             Arrays.sort(elephants);
             System.out.println("After sorting");
             for (Elephant elephant : elephants) {
                 System.out.println(elephant.weight + ":" +
                         elephant.age);
             }

         }
     }

Conversion

As an example, the following code converts a Queue to a List.

     Queue queue = new LinkedList ();
     queue.add("Hello");
     queue.add("World");
     List list = new ArrayList(queue);

And this converts a List to a Set.

     List myList = new ArrayList ();
     myList.add("Hello");
     myList.add("World");
     myList.add("World");
     Set set = new HashSet(myList);

enum

public enum CustomerType 
{
       INDIVIDUAL,
       ORGANIZATION
}

Collections synchronisées

Collections.synchronizedCollection(Collection<T> c)

Bonnes pratiques

http://javatropbien.free.fr/index.php/2011/08/27/8-bonnes-pratiques-de-base-pour-un-developpeur-javaj2ee/
http://bokc-fr.blogspot.fr/2010/04/java-bonnes-pratiques.html
http://www.patate-chaude.fr/bonne-pratique-java-constructeurs-appels-methodes/
Sonar: findbugs, checkstyle, pmd et Metrics

StringBuilder (non synchronisé) au lieu de StringBuffer.