DJViking Skrevet 6. mars 2007 Del Skrevet 6. mars 2007 Hva er løsningen på følgende feilmelding: Type safety: The constructor ArrayList(Collection) belongs to the raw type ArrayList. References to generic type ArrayList<E> should be parameterized Jeg har et HashMap<String, Long> map, som jeg tar å bruker i. List list = new ArrayList(map.values()); Det er på denne linjen jeg får feilmeldingen. Lenke til kommentar
HV Skrevet 6. mars 2007 Del Skrevet 6. mars 2007 List<Long> list = new ArrayList<Long>(); Lenke til kommentar
DJViking Skrevet 6. mars 2007 Forfatter Del Skrevet 6. mars 2007 Da får jeg en ny feilmelding.. Ser ut som List ikke støtter Generics. Lenke til kommentar
Ueland Skrevet 6. mars 2007 Del Skrevet 6. mars 2007 Fint m du legger ved feilmeldingene, litt lettere for oss Lenke til kommentar
Patton Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Feilmelding er gull. Dessuten stoetter List generics. Lenke til kommentar
DJViking Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 (endret) Problemet mitt ligger med å sortere en HashMap på verdiene. Jeg prøver meg på denne: 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(minMap.entrySet()); for (Iterator i = set.iterator(); i.hasNext();) { Map.Entry entry = (Map.Entry) i.next(); System.out.println(entry.getKey() + " - " + entry.getValue()); } På TreeSet får jeg følgende feilmelding: Type safety: The constructor TreeSet(Comparator) belongs to the raw type TreeSet. References to generic type TreeSet<E> should be parameterized På set.addall(map.entrySet()) får jeg følgende feilmelding: Type safety: The method addAll(Collection) belongs to the raw type TreeSet. References to generic type TreeSet<E> should be parameterized Min HashMap er av følgende struktur: HashMap<String, Long> For å løse problemet med å sortere på verdiene har jeg følgende: Long[] verdier = (Long[])map.values().toArray(); Arrays.sort(verdier); Deretter benytter jeg Integer array til å liste ut verdiene fra map i sortert rekkefølge med følgende: for(int i = 0; i < verdier.length; i++){ Set set = map.entrySet(); Iterator itr = set.iterator(); Long long = (Long)verdier[i]; while(itr.hasNext()){ Map.Entry me = (Map.Entry)itr.next(); Long long2 = (Long)me.getValue(); if(long2.equals(long)){ Noe } } } Noen som kan ha en bedre løsning.. Føler som det er en stygg måte å gjøre sorteringen på, en for-løkke med en while-løkke. Endret 7. mars 2007 av DJViking Lenke til kommentar
mikaelandre Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 feilmeldinger om type safety er warnings, og programmet kjører fint like vel (ihvertfall i java 1.5). For å hindre disse må du spesifisere hvilken type objekt som skal inngå i strukturen din. for en arraylist med Integer objekter blir det ArrayList<Integer> liste = new ArrayList<Integer>(); I ditt tilfelle: TreeSet<Comparator> set = new TreeSet<Comparator>(... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå