Что у меня есть: Я совершенно новичок в работе с файлами JSON. В настоящее время я использую Gson
, чтобы создать два HashMaps<Key, List<Pair>>
для хранения значений в. Я дошел до того, что могу создать файл JSON.
HashMap<Integer, List<Pair>> in = new HashMap<Integer, List<Pair>>();
HashMap<Integer, List<Pair>> out = new HashMap<Integer, List<Pair>>();
for (int i = 0; i < 300000, i++) {
List<Integer> inList = new ArrayList<Pair>();
List<Integer> outList = new ArrayList<Pair>();
in.put(i, inList);
out.put(i, outList);
}
gsonFile = new GsonBuilder().setPrettyPrinting().create();
FileWriter file = new FileWriter("newFile.json");
gsonFile.toJson(in, file);
gsonFile.toJson(out, file);
file.flush();
class Pair {
int id;
int value;
//Some code here
}
, что дает мне следующий JSON
файл:
{
"0": [],
"1": [],
"2": [],
"3": [],
...
"300000": []
}
{
"0": [],
"1": [],
"2": [],
"3": [],
...
"300000": []
}
Что я хочу: Здесь мне интересно, как я могу использовать Gson для доступа, например, List<Pair>
для Key = 3
в первом HashMap, чтобы затем добавить Pair
объекты в него и затем записать обратно в файл. Например, что-то вроде:
List<Pair> list3 = gsonFile.get(0).get("3");
list3.add(new Pair(1, 1));
, чтобы стать:
{
"0": [],
"1": [],
"2": [],
"3": [{"id": 1, "value": 1}],
...
"300000": []
}
{
"0": [],
"1": [],
"2": [],
"3": [],
...
"300000": []
}
Я использую этот метод для хранения значений, поскольку у меня должно быть где-то от 0 до 300 000 Pair
объектовв одном List<Pair>
и, следовательно, сохранение in
и out
в памяти приведет к ошибкам нехватки памяти.