Сортировка HashMap
List entryList = new ArrayList(mapServer.entrySet());
Collections.sort(entryList, new Comparator()
{
public int compare(Object o1, Object o2)
{
Map.Entry e1 = (Map.Entry) o1;
Map.Entry e2 = (Map.Entry) o2;
Comparable c1 = (Comparable) e1.getValue();
Comparable c2 = (Comparable) e2.getValue();//*/
return c1.compareTo(c2);
}
});
Выдает эксепшн:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at cbi.batch.importdahost.CreazioneAnagrafeF24.createAnagrafe(CreazioneAnagrafeF24.java:335)
at cbi.batch.importdahost.CreazioneAnagrafeF24.createAllAnagrafe(CreazioneAnagrafeF24.java:175)
at cbi.batch.importdahost.CreazioneAnagrafeF24.start(CreazioneAnagrafeF24.java:128)
at cbitest.XXX.main(XXX.java:27)
Caused by: java.lang.ClassCastException: java.util.HashMap$Entry cannot be cast to java.lang.Comparable
at cbi.batch.importdahost.CreazioneAnagrafeF24$1.compare(CreazioneAnagrafeF24.java:478)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at cbi.batch.importdahost.CreazioneAnagrafeF24.CAPDAANAGRAFE(CreazioneAnagrafeF24.java:469)
... 8 more
Понимаете что означает сообщение?
Это я понимаю)), просто другого решения найти не могу, написал то что пробовал последним...
Можно использовать TreeMap - там сортировка работает автоматически.
Если ты хочешь получить сортированный список то используй TreeMap или Сomparator