我有TreeMap<List<String>, Integer>
一个自定义比较器和很多条目(此时为 700k,但可能更多)。List 实例通常很短(1-3 个条目)。
现在使用标准序列化大约需要 2 分钟时间,下面的自定义实现仍然需要一分钟以上。
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
frequencies.clear(); //frequencies is the TreeMap
int entrySize = in.readInt();
for(int i = 0; i < entrySize; ++i) {
int phraseLength = in.readInt();
List<String> phrase = new ArrayList<>(phraseLength);
for(int j = 0; j < phraseLength; ++j) {
phrase.add((String)in.readObject());
}
frequencies.put(phrase, in.readInt());
}
}
我怎样才能让它更快?