本人在做遍历测试的时候,收集到了2万多条数据,数据格式是id-name的形式,我用一个json对象存放的,但是有个问题,存放的时候并不是按照id的顺序,所以想按照id排序,然后再写入文件。看了网上一些帖子,思路很像,就是先把json对象的keys提取到一个list中,然后再按照一定的规则排序,然后按照排好的list数据从json里面提取出来,在放到一个json对象里面。
经过尝试我想到了一个针对我的情况的简单的方法,我的id在1-30000之间。我直接for循环遍历,如果json对象存在key就取出来,不存在就跳过。下面分享一下我的代码,供大家参考。
public class Practise extends ApiLibrary {
public static List<String> names = new ArrayList<>();
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
List<String> namess = readTxtFileByLine(LONG_Path + "111.log");
int size = namess.size();
namess.forEach(name -> {
String[] split = name.split(PART);
jsonObject.put(split[0], split[1]);
});
// 这是for循环遍历namess
// for (int i = 0; i < size; i++) {
// String s1 = namess.get(i);
// output(s1);
// if (s1.length() - s1.lastIndexOf(PART) == 1) continue;
// String[] name = namess.get(i).split("\\|");
// jsonObject.put(name[0], name[1]);
// }
// saveJsonList(jsonObject, "222");
for (int i = 0; i < 30000; i++) {
if (!jsonObject.containsKey(i+EMPTY)) continue;
String sssssss = i + PART + jsonObject.getString(i + EMPTY);
names.add(sssssss);
}
saveStringList(names,"2222");
output(jsonObject.size());
}
}
末了宣传一下QQ群:群号:340964272