Einfache caching in Java hashmap
Nur wollen, verwenden Sie java-hashmap cache ein einfaches paar in Speicher und wollen, um die zwischengespeicherten Daten in eine andere Instanz.
Bin ich unter den unten angegebenen code, um einige Daten in den cache betrachten Sie das folgende ProcessDefinitionJavaCode.java code.
package Folder.ProcessDefinition;
import java.util.*;
import java.io.*;
public class ProcessDefinitionJavaCode{
/****** START SET/GET METHOD, DO NOT MODIFY *****/
protected String string_1 = "";
protected String string_2 = "";
public String getstring_1() {
return string_1;
}
public void setstring_1(String val) {
string_1 = val;
}
public String getstring_2() {
return string_2;
}
public void setstring_2(String val) {
string_2 = val;
}
/****** END SET/GET METHOD, DO NOT MODIFY *****/
public ProcessDefinitionJavaCode() {
}
public void invoke() throws Exception {
/* Available Variables: DO NOT MODIFY
In : String string_1
In : String string_2
* Available Variables: DO NOT MODIFY *****/
HashMap<Integer,String> cache = new HashMap<Integer,String>();
cache.put(21, "Twenty One");
cache.put(31, "Thirty One");
}
}
Was soll ich tun, Wenn ich will, um die Daten, die ich Hinzugefügt, gerade jetzt im cache
in einem anderen java-Klasse temp.java.
Es tut mir Leid, wenn es sehr albern, ich bin kein Java-Experte..
Brauche nur eine Lösung, um einige Werte in den cache und ruft die gleiche ..
Dies scheint sehr heikel, aber ile versuchen und hinzufügen, meine 2 cents, nicht zu wissen, das volle Ausmaß des Problems. Erstens verwenden: public static ConcurrentHashMap<Integer, String> cache = new ConcurrentHashMap<Integer, String>(); Sie sollten in der Regel schreiben einige bequeme Methoden, um verhindern, dass den direkten Zugriff auf den cache, aber Sie können ProcessDefinitionJavaCode.cache für den direkten Zugriff von anderen Objekten, aber ich würde nicht raten, und ich würde auch nicht raten, übergeben Sie es herum, als parameter.
Dies scheint sehr heikel, aber ile versuchen und hinzufügen, meine 2 cents, nicht zu wissen, das volle Ausmaß des Problems. Erstens verwenden: public static ConcurrentHashMap<Integer, String> cache = new ConcurrentHashMap<Integer, String>(); Sie sollten in der Regel schreiben einige bequeme Methoden, um verhindern, dass den direkten Zugriff auf den cache, aber Sie können ProcessDefinitionJavaCode.cache für den direkten Zugriff von anderen Objekten, aber ich würde nicht raten, und ich würde auch nicht raten, übergeben Sie es herum, als parameter.
InformationsquelleAutor Abdul Kader | 2013-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Passieren Sie den cache Hashmap zu der anderen Klasse in den Konstruktor oder eine setter-Methode.
InformationsquelleAutor Gilbert Le Blanc
Wie über diesen einfachen Ansatz (es ist vielleicht nicht genau das, was Sie wollen, aber Sie bekommen möglicherweise eine nützliche Idee):
InformationsquelleAutor Victor Sorokin
Die einzige Methode, die ich kenne, die zum abrufen der Werte aus einer Karte, ist das erstellen einer Funktion, so zu tun.
Diese Weise können Sie eine Funktion erstellen, wie diese:
Das wird komplizierter, da die HashMap nicht speichern Sie die Werte nacheinander... die einzige Lösung, die ich finden kann, ist, Sie speichern den letzten Wert in einer variable.
Sie können
LinkedHashMap
für die Iteration überkey-value
Paare in der Reihenfolge der addition.Pires.. werde ich machen es einfach.. ich will einfach nur, um die hasmap Werte Hinzugefügt habe ich in der oben in einem anderen .java Datei.. sorry, wenn ich mich verständlich
Ich bearbeitete die Antwort... das ist die einzige Methode die ich kenne um die Werte einer HashMap.
InformationsquelleAutor Manuel Pires