web-dev-qa-db-ja.com

Javaハッシュマップをツリーマップに入れる

私は現在、前の質問で尋ねられたように、テキストファイルから200万行を読み取っています Javaで200万行のテキストファイルを読み取る最速の方法

次に、これらの情報をHashMapに格納し、ceilingkeyを使用したいので、TreeMapを介してそれをソートします。次の方法は正しいですか?

private HashMap<Integer, String> hMap = new HashMap();

private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);
12
HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.putAll(hashMap);

とにかく動作するはずです。

24
Akkusativobjekt

これはうまくいきます:

HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);

しかし、HashMapを使用して入力を保存することはお勧めしません。同じ巨大なデータを保持する2つのマップが作成されます。その場でそれを行い、TreeMapに直接追加するか、ListからTreeMapへの変換を使用します。

また、さらに効率を上げるには プリミティブコレクション を検討してください。

5
husayt
HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
hashMap.remove(null);
treeMap.putAll(hashMap);

HashMapはnullを許可しますが、TreeMapは許可しないため、Treemapに追加する前にnullをキーセットから削除します

1
Nagmani Verma