Retour
Cours précédent

Enumération

public enum Color {
	RED(255,0,0),
	GREEN(0,255,0),
	BLUE(0,0,255);

	private int r;
	private int g;
	private int b;

	Color(int r, int g, int b) {
		this.r = r;
		this.g = g;
		this.b = b;
	}
}

Collections

add()
contains()
isEmpty()
remove()
size()

Liste

List<E>

Itérateur

Iterator<E>

hasNext
next
remove

Ensemble

Set<E>
Ensemble non ordonné

Map

Map<K,V> Liste associative clé-valeur

get(K key)
put(K key, V value)
remove
keySet()
values()

Hash Table

C’est un ensemble de couple key-value
Ça transforme la table (K key, V Value) en (int key, V value) ça permet un accès direct à une valeur grace à get(key.hashcode) au lieu de tester tout les clef une par une.

Hashcode

fonction qui prend un objet de peux importe quelle taille et retourne un entier.

Classes anonymes

/*
 * L'annotation permet de dire au développeur que c'est sensé être une interface fonctionnelle (utilisé par des classes anonymes)
 */
public @FunctionnalInterface interface Operation {
	int calculer(int x, int y);
}

public class Somme implements Operation {
	@Override
	public int calculer(int x, int y){
		return x + y;
	}
}

public class Main {
	public static void main(String[] args) {
		Operation op = new Somme();
		System.out.println(op.calculer(1, 2));

		/*
		 * Ici on déclare une classe anonyme.
		 * Cette classe implémente `Operation` et n'as pas de nom.
		 * Cela permet de créer une classe à usage unique. Sans s'embêter avec un fichier.
		 * C'est possible de les faire à partir d'interfaces mais aussi de classes abstraites.
		 */
		Operation op2 = new Operation(){
			@Override
			public int calculer(int x, int y){
				return x * y;
			}
		};
		System.out.println(op2.calculer(1, 2));
	}
}

Lambda Expression

(x, y) -> {
	//some code
}
x -> x + 1

Applique les instructions à droite de la fleche à partir des objets de la partie de gauche.

(x, y) -> {
	//some code
}
// La lambda expression ci-dessus est équivalente à la méthode ci-dessous.
method(T x, T y){
	//some code
}

Stream

Approche fonctionnelle des traitements sur les éléments d’une source.

List<String> givenList = Arrays.asList("aaa", "abb", "acc", "dd");

givenList.stream()
	.filter(s -> s.startWith("a"))
	.map(s -> "_" + s)
	.limit(2)
	.map(String::toUpperCase)// égal à .map(s -> s.toUpperCase)
	.forEach(System.out::println);


Retour
Cours précédent