キーとしてジェネリック型の代わりにプリミティブを使用するGuava テーブルの代替手段はありますか?
プリミティブを使用して、Java Numbers と Java Maps によって作成された追加のエントリ オブジェクトを使用することによって引き起こされるオート ボクシングを回避したいと考えています。
Trove TLongObjectMapを使用して独自の基本的な LongLongObjectTable を作成しましたが、標準ライブラリが利用可能な場合はそれを使用することを好みます。
private static class LongLongObjectTable<T> {
private final TLongObjectMap<TLongObjectMap<T>> backingMap = new TLongObjectHashMap<>();
T get(final long rowKey, final long columnKey) {
final TLongObjectMap<T> map = this.backingMap.get(rowKey);
if (map == null) {
return null;
}
return map.get(columnKey);
}
void put(final long rowKey, final long columnKey, final T value) {
TLongObjectMap<T> map = this.backingMap.get(rowKey);
if (map == null) {
map = new TLongObjectHashMap<>();
this.backingMap.put(rowKey, map);
}
map.put(columnKey, value);
}
Collection<T> values() {
final List<T> values = new ArrayList<T>();
for (final TLongObjectMap<T> map : this.backingMap.valueCollection()) {
values.addAll(map.valueCollection());
}
return values;
}
}