hi,
hab noch nen problem :?
und zwar möchte ich in eine hashtable ein datum schreiben, aber der typ date scheint in einer hashtable nicht erlaubt zu sein.
ausserdem möchte ich jetzt gerne 2 methoden haben die einmal die zeit und einmal die temperatur ausgeben, aber ich habe von den methoden keinen zugriff auf die hashtables, vieleicht kann mir ja nochmal jemand weiterhelfen
die fehler sind in zeile:
37 -> The local variable b may not have been initialized
59 -> bekomme ich halt keinen zugriff auf die hashtables
Code:
public class temp extends Thread implements temperaturint{
public static void main(String[] args){
temp t = new temp();
t.run();
}
private boolean running = true;
public void run() {
Hashtable speicher = new Hashtable();
Hashtable speicherdate = new Hashtable();
BufferedReader tastatur = new BufferedReader(
new InputStreamReader(System.in));
int hv = 0;
String a = "";
String weiter = "j";
Date b;
while (weiter.equals("j")){
Date datum = new Date();
System.out.println("Bitte Temperatur Wert eingeben: ");
try {
a = ("Temperatur: " + tastatur.readLine()+"°");
b = datum;
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
speicher.put(new Integer(hv),a);
speicherdate.put(new Integer(hv),b);
System.out.println("Wollen sie einen weiteren Temperaturwert eingeben? (j/n)");
try {
weiter = tastatur.readLine();
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
hv= hv+1;
}
hv = 0;
for (Enumeration e = speicher.elements() ; e.hasMoreElements() ;) {
System.out.println(e.nextElement());
}
}
public String getlastTemperatur(){
return ;
}
public String getlastTime(){
return
}
public void stopThread() {
this.running = false;
}
}
ok danke schonmal,
aber wie geb ich denn jetzt den letzten wert der hashtable aus?
ich hab grad schonmal versucht mit speicher.size zu arbeiten, klappt aber nicht
Du willst immer nur den letzten Wert haben und kennst den Key nicht?
Dann mach nicht die Hashtable zur Klassenvariablen, sondern die beiden letzten Werte.
die daten in einem hashtable werden ungeordnet abgelet. du kannst also mit größenangaben oder sonstigem NICHT arbeiten. wenn du immer an den letzten wert ran willst, muss du dir zumindest immer den letzten key (am besten als klassenmember, wenn du aus einer anderen methode zugreifen musst) speichern.
falls du das mit den keys nicht brauchst, nimm nen java.util.Vector, bei dem kannst du mit hilfe von zahlen indices auf elemente (also auch auf das zuletzt eingefügte) zugreifen