我創建使用下面的代碼Resuse JSON對象
while(true){
JSONObject checks = new JSONObject(jsonString);
}
我如何使用這個JSON對象,而不是櫃面一個HashMap中創建一個新對象每次。比如我可以做類似下面
一個JSON對象HashMap h =new Hashmap
while(true){
h.add("abc","pwr");
h.clear();
}
我創建使用下面的代碼Resuse JSON對象
while(true){
JSONObject checks = new JSONObject(jsonString);
}
我如何使用這個JSON對象,而不是櫃面一個HashMap中創建一個新對象每次。比如我可以做類似下面
一個JSON對象HashMap h =new Hashmap
while(true){
h.add("abc","pwr");
h.clear();
}
正如你說你用這個實施https://github.com/stleary/JSON-java/blob/master/JSONObject.java
您可以遍歷它的鍵
Iterator<String> entryIter = jsonObject.keys();
while (entryIter.hasNext()) {
jsonObject.remove(entryIter.next());
}
不過,老實說,我不認爲這wouldd更好。
的JSONObject是普通Java對象,你不能HashMap的邏輯應用到clear.Because一個HashMap是爲了存放物品/對象/任何東西的集合。從集合中,您可以清除或斷開其相關項目的引用。不適用於普通物體。
對於你的情況,你可以定義的JSONObject例如while循環外面和重用對象像下面。
JSONObject checks = null;
while(true){
checks = new JSONObject(jsonString);
}
對於每次迭代舊的對象將有資格獲得GC [垃圾收集]和一般GC算法照顧內存&性能。
這樣的方法如果處理數百億記錄,則不是這樣。 – Skynet
Im使用compile(「org.json:json:20140107」)。我檢查了這個,沒有像JSON.clear() –