次のような 2 つの補完的なマップを含むコードがあります。
private final Map<Integer, String> idToName = new HashMap<Integer, String>();
private final Map<String, Integer> nameToID = new TreeMap<String, Integer>();
一方に何かを入れるときはいつでも、次のようにもう一方にも (キーと値を逆にして) 入れます。
nameToID.put(name, id);
idToName.put(id, name);
このアプリケーションでメモリの問題が発生しています。ここには多くの重複があるようです。これをよりメモリ効率的にする方法はありますか? 使用できる単一の構造はありますか? これは時間効率を犠牲にする可能性があることを認識しているので、トレードオフがどうなるかに興味があります。