G
Guest
Gast
Hallo Leute,
ich habe das Problem, dass ich zwei Hashmaps brauche in welche ich ein paar Wörter speichere, doch das ganze geschieht in einer for-schleife. Mein Wunsch ist es jedoch, dass bei jedem Neu-eintritt in die for-schleife sich die zwei Hashmaps wieder auf null setzen, d.h. dass sie leer sind und wieder neu beschrieben werden können.
Nun habe ich es versucht am Ende der Schleife jeweils entweder hash.clear() ,
oder hash.remove(items von 0-hash.size())
doch bei einem neuen Schleifendurchlauf kommt dann immer eine Nullpointer-Exception, was bedeutet, dass es irgendwie nicht gehen möchte.Unten habt ihr noch den Code, vielleicht könnt ihr mir so ja besser helfen?
Danke schonmal
ich habe das Problem, dass ich zwei Hashmaps brauche in welche ich ein paar Wörter speichere, doch das ganze geschieht in einer for-schleife. Mein Wunsch ist es jedoch, dass bei jedem Neu-eintritt in die for-schleife sich die zwei Hashmaps wieder auf null setzen, d.h. dass sie leer sind und wieder neu beschrieben werden können.
Nun habe ich es versucht am Ende der Schleife jeweils entweder hash.clear() ,
oder hash.remove(items von 0-hash.size())
doch bei einem neuen Schleifendurchlauf kommt dann immer eine Nullpointer-Exception, was bedeutet, dass es irgendwie nicht gehen möchte.Unten habt ihr noch den Code, vielleicht könnt ihr mir so ja besser helfen?
Danke schonmal
Code:
public class TestFile {
public void einlesen(String datei1, String datei2) throws IOException{
HashMap<Number, String> words1 = new HashMap<Number, String>();
HashMap<Number, String> words2 = new HashMap<Number, String>();
int counter = 0;
int counter2 = 0;
BufferedReader br = new BufferedReader(new FileReader(datei1));
BufferedReader br2 = new BufferedReader(new FileReader(datei2));
// Dokument 1
String s;
String[] ss = new String[10];
while((s = br.readLine()) != null){
if (s.contains(" ")){
ss = s.split(" ");
for(int i=0;i<ss.length;i++){
words1.put(counter, ss[i]);
counter++;
}
}else{
words1.put(counter,s);
counter++;
}
}
//Remove duplicates in "words1"
String[] ado = new String[words1.size()];
for(int i=0;i<words1.size();i++){
ado[i]=words1.get(i);
}
Set set = new HashSet(Arrays.asList(ado));
String[] array1 = (String[])(set.toArray(new String[set.size()])); // ARRAY 1
// Dokument 2
String s2;
String[] ss2 = new String[10];
while((s2 = br2.readLine()) != null){
if (s2.contains(" ")){
ss2 = s2.split(" ");
for(int i=0;i<ss2.length;i++){
words2.put(counter2, ss2[i]);
counter2++;
}
}else{
words2.put(counter2,s2);
counter2++;
}
}
//Remove duplicates in "words2"
String[] ado2 = new String[words2.size()];
for(int i=0;i<words2.size();i++){
ado2[i]=words2.get(i);
}
Set set2 = new HashSet(Arrays.asList(ado2));
String[] array2 = (String[])(set2.toArray(new String[set2.size()])); // ARRAY2
matrix(array1,array2);
br.close();
br2.close();
for(int o=0;o<words1.size();o++){
words1.remove(o);}
for(int u=0;u<words2.size();u++){
words2.remove(u);}
}
public void matrix(String[] array0, String[] array1){
.
.
.
}
public static void main (String[] args) throws IOException{
TestFile ado = new TestFile();
File dir = new File("C:/keys/I_11/");
File dir2 = new File("C:/keys/extract/I_11/");
File[] liste = dir.listFiles();
File[] liste2 = dir2.listFiles();
for(int i=0;i<liste.length;i++){
ado.einlesen(liste[i].toString(), liste2[i].toString());
}
}
}