gpt4 book ai didi

java - Multimap 和 gson 性能

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:47:46 25 4
gpt4 key购买 nike

我同时使用 Gson 和 Guava。我有一个类,我想序列化它看起来像这样 sscce

import com.google.common.collect.Multimap;
public class FooManager {
private Multimap<String, Foo> managedFoos;
// other stuff
}

Gson 不知道如何序列化它。所以我这样做了:

public final class FoomapSerializer implements
JsonSerializer<Multimap<String, Foo>> {
@SuppressWarnings("serial")
private static final Type t =
new TypeToken<Map<String, Collection<Foo>>>() {}.getType();

@Override
public JsonElement serialize(Multimap<String, Foo> arg0, Type arg1,
JsonSerializationContext arg2) {
return arg2.serialize(arg0.asMap(), t);
}
}

但是,我担心一遍又一遍地调用 .asMap() 会很慢,即使底层的 Map 很少改变。 (Foo 对象的序列化会经常改变,但映射本身在初始化后不会改变)。有没有更好的办法?

最佳答案

Multimap.asMap 在 O(1) 时间内返回 Multimap 的缓存 View 。这不是一项昂贵的手术。 (事实上​​ ,它非常便宜,最多需要一次分配。)

关于java - Multimap 和 gson 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com