Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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 av DJViking
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...