JSONObject jsonObject2 = new JSONObject(false);
JSONObject jsonObject3 = new JSONObject(true);
public JSONObject(int initialCapacity, boolean ordered){
if (ordered) {
map = new LinkedHashMap<String, Object>(initialCapacity);
} else {
map = new AntiCollisionHashMap<String, Object>(initialCapacity);
}
}
new AntiCollisionHashMap<String, Object>这是一个什么集合?这两个构造方法得到的JSONObject对象区别的具体体现是什么?
AntiCollisionHashMap已经deprecated的了,现在是一个LinkedHashMap和一个HashMap。
在使用上没太大区别,但是由于LinkedHashMap中间是个双向链表且有序,所以put顺序和读取时候返回的顺序一致,这样在遍历的时候输出顺序和原始信息方向一致。
ordered
ordered;
hashmap;
虽然没见代码 —— 可以猜测用hashmap来通用化的表示对象。具体ordered排序的规则,得看源码。