今回エンジニアブログを担当させて頂きます佐藤です。はじめまして。
先日、JavaのHashMapにとても感動したので今回はHashMapについて記述させて頂きます。
HashMap
HashMapはMap実装クラスの1つです。
Map クラスの特徴はキーと値をペアで保持できるところです。
また、同一のキーを複数登録することはできません。
HashMapの基本的な使い方は以下のように記述します。
HashMap<キーの型,値の型> map = new HashMap<キーの型,値の型>();
保存
map.put(キー1,値1); map.put(キー2,値2);
取得
map.get(キー1); map.get(キー2);
実際に私が使ったHashMapの実用例を紹介させていただきます。
◆ネットワークから取得した画像をキャッシュする
public class ImageCache { private static HashMap<URL,Bitmap> cache = new HashMap<URL,Bitmap>(); public static Bitmap getImage(URL key) { if (cache.containsKey(key)) { return cache.get(key); } return null; } // 画像を保持する。 public static void setImage(URL key, Bitmap image) { cache.put(key, image); } public static void clearCache() { cache = null; cache = new HashMap<URL,Bitmap>(); } }
◆データの保持をする
SharedPreferencesを使ってデータの保存をする時も、HashMapを利用すれば複数のデータを保存することができました!
public class DataMap { Context context; private SharedPreferences sharedPref; public DataMap(Context context, String name){ this.context = context; sharedPref = this.context.getSharedPreferences(name ,Context.MODE_PRIVATE); } // キーと値を保存する public void Write(HashMap<String, String> hashmap){ SharedPreferences.Editor preference_editor = sharedPref.edit(); Set<String> key_set = hashmap.keySet(); Iterator<String> key_iterator = key_set.iterator(); // 1つづつ格納する。 for(int i=0; i < hashmap.size(); i++){ String key = key_iterator.next().toString(); // キーから値を取得 String value = hashmap.get(key).toString(); preference_editor.putString(key, value); } preference_editor.commit(); } // キーを参照し値を取得する public HashMap<String, String> Read(String[] keys){ HashMap<String, String> hashmap = new HashMap<String,String>(); for(int i=0; i < keys.length; i++){ // 参照したキーに値が入っていなければ任意の値(今回は""を)で返す hashmap.put(keys[i], sharedPref.getString(keys[i], "")); } return hashmap; } }
HashMapは使い方次第でもっと色々なことができそうだなと思いました!