| HashMapの使い方 
 このサンプルではHashMapにデータを追加および削除する方法およびデータの取得について
 紹介しています。
 また、HashMapにListを追加して取り出すときの方法についても紹介します。
 
 
 
   
 
 
| import android.support.v7.app.AppCompatActivity; import android.os.Bundle;
 
 //ログ出力の宣言
 import android.util.Log;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
 public class MainActivity extends AppCompatActivity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 HashMap<Integer, String> hash = new HashMap<Integer, String>();
 putHashMap(hash, 0,"aaa");
 putHashMap(hash, 1,"bbb");
 putHashMap(hash, 2,"ccc");
 printHashMap(hash);
 //出力結果の例
 /*
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/Key:0: aaa
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/Key:1: bbb
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/Key:2: ccc
 */
 //インデックスが「1」(2番目のデータ)を削除します。
 removeHashMap(hash, 1);
 printHashMap(hash);
 //出力結果の例
 /*
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/Key:0: aaa
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/Key:2: ccc
 */
 
 //HashMapにListを格納し、取り出してみます
 testHashWithList();
 }
 //HashMapに格納されている情報を出力します。
 private void printHashMap(HashMap<Integer, String> hash)
 {
 for(Integer iKey:hash.keySet())
 {
 Log.d("Key:" + String.valueOf(iKey), hash.get(iKey));
 }
 }
 //HashMapオブジェクトにデータを格納します。
 private void putHashMap(HashMap<Integer, String> hash, int iData, String sData)
 {
 hash.put(iData, sData);
 }
 private void removeHashMap(HashMap<Integer, String> hash, int iKey)
 {
 hash.remove(iKey);
 }
 
 //HashMapにListを格納し、取り出してみます
 private void testHashWithList()
 {
 HashMap<Integer, List<String>> hash = new HashMap<Integer, List<String>>();
 List<String> array=new ArrayList<String>();//HashMapに格納されているデータを取り出すためのList
 List<String> array1=new ArrayList<String>();//1個目のList
 List<String> array2=new ArrayList<String>();//2個目のList
 List<String> array3=new ArrayList<String>();//3個目のList
 int idx = 0;
 //データ追加(このサンプルではHashMapに3個のList情報を格納しています。)
 array1.add("a");
 array1.add("b");
 hash.put(idx, array1);
 idx++;
 
 array2.add("1");
 hash.put(idx, array2);
 idx++;
 
 array3.add("1.5");
 array3.add("0.5");
 array3.add("0.01");
 hash.put(idx, array3);
 
 for(int i = 0; i < hash.size(); i++)
 {
 Log.d("i:" + String.valueOf(i), String.valueOf(i));
 //HashMapからキーに一致したデータを取得します。
 array = hash.get(i);
 for(int j=0; j < array.size(); j++)
 {
 Log.d("j:" + String.valueOf(j), array.get(j));
 }
 }
 //出力結果の例
 /*
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/i:0: 0
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:0: a
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:1: b
 
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/i:1: 1
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:0: 1
 
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/i:2: 2
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:0: 1.5
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:1: 0.5
 10-06 03:57:36.660 1958-1958/com.example.test.test12 D/j:2: 0.01
 */
 }
 }
 
 
 |  
 HashMapは次のように宣言をして使用します。
 HashMap<型, 型> hash = new HashMap<型, 型>();
 HashMapはキーと値という組み合わせで使用します。
 
 (例)
 HashMap hash = new HashMap();
 データを追加するときは「put」、データを削除するときは「remove」を使用します。
 (例)
 追加のケース
 hash.put(iData, sData);
 ※キーと値を指定して追加します。
 削除のケース
 hash.remove(iKey);
 ※キーを指定して削除します。
 
 全てのデータを取得するには次のように表示できます。
 (例)
 for(Integer iKey:hash.keySet())
 {
 Log.d("Key:" + String.valueOf(iKey), hash.get(iKey));
 }
 キーを指定して値を取得することができます。
 (例)
 hash.get(iKey)
 
 
 HashMapにListオブジェクトを追加して、必要に応じて取得する例を示します。
 HashMapに追加するListは一つずつインスタンス化したものを使用します。
 clear()をしただけでは同じオブジェクトを参照したものとみなすようで
 HashMapに追加したデータは同じデータが格納されてしまうためです。
 
 追加には通常のputと同様の処理で実装します。
 (例)
 hash.put(idx, array1);
 
 HashMapに格納したListを取得するにはgetを使用します。
 (例)
 array = hash.get(i);
 
 取得したListオブジェクトは普通にみることができるので
 次のように処理できます。
 (例)
 for(int j=0; j < array.size(); j++)
 {
 Log.d("j:" + String.valueOf(j), array.get(j));
 }
 
 
 
 |  |