読者です 読者をやめる 読者になる 読者になる

WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

色々使えるHashMap

Java

今回エンジニアブログを担当させて頂きます佐藤です。はじめまして。

先日、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は使い方次第でもっと色々なことができそうだなと思いました!