Bonjour à tous

Je voudrais écrire une fonction "map" sur les listes, c'est à dire une fonction qui attends en argument une fonction de A dans B et une liste de A et qui retourne une liste de B. J'ai écris le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.*;
 
interface F<A,B>{
    B app(A a);
}
 
class Map {
    static <A,B> LinkedList<B> map(F<A,B> f, LinkedList<A> l){
	LinkedList<B> l2= new LinkedList<B>();
	for (A e : l)
	    l2.add(f.app(e));
	return l2;
    }
 
 
}
 
public class Test{
 
    public static void main(String[] a)
    {
	LinkedList<Integer> l = new LinkedList<Integer>();
	l.add(1);
	l.add(2);
	l.add(3);
	l.add(4);
	LinkedList<Integer> l2 = Map.map(new F<Integer,Integer>(){
		public Integer app(Integer a){return a * a;}}, l);
	System.out.println(l);
	System.out.println(l2);
    }
}
et j'aimerais savoir si c'est acceptable comme façon de faire pour un programmeur Java ou s'il y a plus simple et élégant.

Merci d'avance !