私は現在、前の質問で尋ねられたように、テキストファイルから200万行を読み取っています Javaで200万行のテキストファイルを読み取る最速の方法
次に、これらの情報をHashMapに格納し、ceilingkeyを使用したいので、TreeMapを介してそれをソートします。次の方法は正しいですか?
private HashMap<Integer, String> hMap = new HashMap();
private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);
HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.putAll(hashMap);
とにかく動作するはずです。
これはうまくいきます:
HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);
しかし、HashMap
を使用して入力を保存することはお勧めしません。同じ巨大なデータを保持する2つのマップが作成されます。その場でそれを行い、TreeMap
に直接追加するか、List
からTreeMap
への変換を使用します。
また、さらに効率を上げるには プリミティブコレクション を検討してください。
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をキーセットから削除します