Bonjour à tous !

Avant tout je sais qu'on peut trouver beaucoup de réponse à cette requête sur le net, mais la mienne est un peu particulière

Alors voilà mon souci :

J'ai besoin de réorganiser un ArrayList<MaClasse> d'une façon particulière. Dans MaClasse, j'ai un champ "date", et je voudrai réorganiser cette ArrayList selon ces dates. Sur une autre partie du forum, un gentil utilisateur m'avait gentiment mis sur la voie (à la suite d'une autre question) en me donnant un gentil lien. En fait, c'était pour initialiser un AbstractTableModel, mais ça n'a pas vraiment d'importance...
Donc j'ai récupéré une partie que j'ai adapté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
		int x;
		MaClasse temp;
		for(int a = 1 ; a < alMaClasse.size() ; a++)//alMaClasse c'est l'ArrayList que je souhaite "ranger"
		{
			x = a;
			while(x > 0 && (alMaClasse.get(x-1).getDate().compareTo(alMaClasse.get(x).getDate()) > 0))
			{
				temp = alMaClasse.get(x);
				alMaClasse.set(x, alMaClasse.get(x-1));
				alMaClasse.set(x-1, temp);
				x--;
			}
		}
Sauf que, je ne l'ai pas testé, mais je sais que ça ne marchera pas
En effet, comme Java fonctionne par adresse (je ne connais pas le terme exact ), ces lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
temp = alMaClasse.get(x);
alMaClasse.set(x, alMaClasse.get(x-1));
alMaClasse.set(x-1, temp);
vont juste faire pointer "temp" vers alMaClasse.get(x), etc... et à la fin, je vais obtenir temp = alMaClasse.get(x) = alMaClasse.get(x-1)

D'habitude, quand je dois dupliquer une classe, j'utilise "clone()", mais là, compte tenu du nombre de champs dans MaClasse, qui sont eux-mêmes des autres classes, j'aimerai autant éviter ...


Donc ma question : suis-je obligé d'implémenter "clone()" de l'interface Clonneable, et ça pour MaClasse, et toutes les sous-classes qui la composent, ou bien y a-t-il un moyen plus rapide ? J'ai cherché sur Internet, mais à chaque fois je tombe sur des exemples avec des ArrayList de types "simples" (String, int, ...)

En espérant que quelqu'un puisse m'aider