Salut à tous,

Je voudrais avoir votre avis concernant un tri que je fais.

J'ai une List qui contient pour le moment 16200 items (elle peut monter jusqu'a 100 000 ou bien plus). Pour la trier j'utilise le sort de Collections :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Collections.sort(dataList, comparatorTable.get(columnSorted) );
Et je lui passe en parametre mon comparator, qui dans le cas par défaut est :
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
33
34
35
public class TimeCreationComparator extends BeanComparator{
 
 
	public int compare(OrderGroupRecordBean o1, OrderGroupRecordBean o2) {
 
		try {
 
 
			SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS");
			Date date1 = format.parse(o1.getOrderTimecreation());
			Date date2 = format.parse(o2.getOrderTimecreation());
 
			if ( ascending )
			{
				if ( date1.getTime() < date2.getTime() )
					return -1;
				else if ( date1.getTime() > date2.getTime() )
					return 1;
				else
					return 0;
			}
			else 
			{
				if ( date1.getTime() < date2.getTime() )
					return 1;
				else if ( date1.getTime() > date2.getTime() )
					return -1;
				else
					return 0;
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return 0;
	}
Le problème c'est qu'avec cette méthode, pour 16200 items prend 62s ce qui est énorme par rapport à l'application que je développe, le temps de réponse doit être de l'ordre de quelques milisecondes ...

A votre avis c'est normale que ça prend tant de temps ? Et ce que vous avez une méthode meilleure que je pourrais utiliser, sans avoir à développer un nouveau quicksort biensur


Merci bq