Jeg har denne kode:
public static ArrayList<HashMap> findLøsninger(String genFølge, char[] as){
HashMap gener = new HashMap();
ArrayList<HashMap> løs = new ArrayList<HashMap>();
String aminoKode;
ArrayList<String> aminoKoder = new ArrayList<String>();
int startIndex=0,i;
do{
gener.clear();
aminoKoder.clear();
i = startIndex;
do{
aminoKode = genFølge.substring(i,i+3);
aminoKoder.add(aminoKode);
i+=3;
} while(i <= genFølge.length()-3);
for(int n=0;n<as.length;n++){
[b]gener.put(aminoKoder.get(n), new Character(as[n]));[/b]
}
if(gener.size() == as.length)
løs.add(gener);
startIndex++;
}while(startIndex <= genFølge.length()-3*as.length);
return løs;
}
Når jeg kompilerer, før jeg følgende warning:
GenetiskF°lge.java:40: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.HashMap
gener.put(aminoKoder.get(n), new Character(as[n]
));
^
1 warning
hvorfor, og hvad gør jeg ved det?
adam
Køb en zebra - og kald den plet
Det er sandsynligvis fordi du erklærer 'gener' som et HashMap uden at specificere typen, som skal indeholdes deri (som du gør med 'løs' og 'aminoKoder'). Udskift denne linje:
HashMap gener = new HashMap();
...med denne:
HashMap<String,Character> gener = new HashMap<String,Character>();
Og en anden ting. Danske tegn i Java
kan give problemer, så brug dem ikke.