G
gauo
Gast
Hallo,
Ich habe versucht eine Art Ranking zu realisieren.
Die Idee, ich habe einige Keys die Values haben nach denen sie Sortiert werden.
Ich will diese Values aktualisieren können und dann die ersten n geliefert bekommen können.
Leider bekomm ich bei
wieso, aber wahrscheinlich hab ich einfach etwas elementares nicht geschnallt :/
bitte hilft mir und danke das ihr überhaupt so weit gelesen habt ^^.
Ich habe versucht eine Art Ranking zu realisieren.
Die Idee, ich habe einige Keys die Values haben nach denen sie Sortiert werden.
Ich will diese Values aktualisieren können und dann die ersten n geliefert bekommen können.
Leider bekomm ich bei
einen Nullpoint und ich raff net ganzMap.Entry entry = (Map.Entry)(set.last());
wieso, aber wahrscheinlich hab ich einfach etwas elementares nicht geschnallt :/
bitte hilft mir und danke das ihr überhaupt so weit gelesen habt ^^.
Code:
import java.util.*;
import java.lang.reflect.Array;
public class Ranking<E,B extends Comparable[B]>
{
TreeMap<E,B> map= new TreeMap<E,B>();
/**
* Constructor for objects of class Ranking
*/
public Ranking()
{
}
public void put(E key,B value){
map.put(key,value);
System.out.println(map.get(key));
}
public B get(E key){
return map.get(key);
}
public Vector<E> getFirstN(int n){
Vector<E> values= new Vector<E>();
TreeSet set = new TreeSet(new Comparator() {
public int compare(Object obj, Object obj1) {
return ((Comparable) ((Map.Entry) obj).getValue()).compareTo(((Map.Entry) obj1).getValue());
}
});
set.addAll(map.entrySet());
for(int i=0;i<n;i++){
Map.Entry entry = (Map.Entry)(set.last());
set.remove(entry);
values.add((E)entry.getValue());
}
return values;
}
}