• ベストアンサー

HashMapについて

coopy72vの回答

  • coopy72v
  • ベストアンサー率12% (1/8)
回答No.5

↓3行目 child.get です…orz

関連するQ&A

  • HashMapについて

    【Java-Class】 JavaでDBの終了まで、日付・DB有無フラグを退避する。 【JSP】 DB有無フラグが存在する場合は"・"をカレンダーに表示する。 という処理を行いたいと思います。 HashMapを使用して put(),get()を使用したいと思いますが、get()を実行した際にNullPointerExceptionが表示されてしまいます。 エラーを見る限りではputの際に配列に設定していないのが原因なのではないかと思いますが、 修正方法がよくわかりません。 どうかよろしくお願いします。 ===DBSelect.java================================= CalenderHash hash = new CalenderHash(); /* DB終了まで */ while(rs.next()){ // 値の格納 hash.HashPut(rs.getString(YMD), "1"); } ===CalenderHash.java============================= public class CalenderHash { protected HashMap ht; public CalenderHash(){ } public void HashPut(Object YMD,Object Flg){ ht.put(YMD,Flg); } public Object get( Object key ) { return(ht.get(key)); } ==JSPの一部 ============================ for ( int i=1; i<=6; i++){ out.println("<TR ALIGN='right'>"); out.println("<TD>"); <省略> YearMD = year + month + Day; mark = ""; // 値の取得 if ( hash.get(YearMD).equals("1")){ mark = "・"; } %> <A HREF="/Schedule/jsp/memo.jsp?Ymd=<%= YearMD %> "><%= mark %><%= cntday %></A> &nbsp; <% } out.println("</TD>"); } out.println("</TR>"); }

    • ベストアンサー
    • Java
  • HashMap.putについて

    ご質問させて頂きます。 hashMap.putの使い方が良く分かりません。 例えば、以下のようなkudamono.csvファイルがあるとします。 ------------------- A,2003/01/01,スイカ B,2003/02/01,バナナ C,2003/03/01,メロン D,2003/04/01,イチゴ ------------------- このデータをhashMap.putでセットしたいので 以下のようなクラスにしたんですが コンパイルエラーが出てしまいます。 ------------------- /*HashMap生成(クラス変数)*/ public static HashMap hashMap = new HashMap(); public static void main(String args[]) throws Exception { FileReader filereader = new FileReader("kudamono.csv"); BufferedReader bufferedreader = new BufferedReader(filereader); String line; int i = 1; int j = 0; while((line = bufferedreader.readLine()) != null) { System.out.println("Start line at " + i); StringTokenizer stringTokenizerTest = new StringTokenizer(line, ","); while(stringTokenizerTest.hasMoreTokens()) { HashMap.put(stringTokenizerTest.nextToken().toString()); j++; } i++; } filereader.close(); } } --------------- たぶんHashMap.putをする前に キーをセットしたり変数を宣言したりすると思うのですが その辺が良く分かりません。 ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • HashMapについて

    質問させてください 以下に簡単なコードをJBuilderで作成しました。 printでブレークをはってmapインスタンスを評価してみると、mapに20個のキーが登録されるはずが、 16個しかいません。 この時点でstr1[16]が評価しても表示されていないのですが、map.get()で正常に取得はできています。 どのようなことが考えられるか、わかる型がいましたら教えてください。よろしくお願いいたします。 import java.util.*; class Test { public static void main(String[]args){ HashMap map = new HashMap(); String str1[] = new String[20]; String str2[] = new String[20]; for(int i = 0; i < 20; i ++){ str1[i] = new String(Integer.toString(i)); str2[i] = new String(Integer.toString(i * 10)); map.put(str1[i],str2[i]); } System.out.println("デバック用ブレーク"); System.out.println(map.get(str1[11])); } }

    • ベストアンサー
    • Java
  • ArrayList内HashMapの取得

    基本的で申し訳ないのですが一番下の行で リストの3つめの要素内のkey=key2でyeahをコンソールに出力したいです。 どのように取得すればいいのでしょうか? list.get(2).get("key2")っぽいかんじで... ArrayList list = new ArrayList(); for (int i = 0; i < 5; i++) { HashMap map = new HashMap(); map.put("key1", "hello"); map.put("key2", "yeah"); map.put("key3", "boo"); list.add(map); } System.out.println(list.get(2));

    • ベストアンサー
    • Java
  • javaの連想配列について教えてください

    お世話になります。 javaの連想配列について教えてください。 やりたいことは下記のようなデータを作成したいです。 ================================================ {   "shcool" : {          "class" : "A",          "yamada" : {                "class" : "AA",                "height" : 165,                "weight" : 60         },          "saitou" : {                "class" : "AB",                "height" : 170,                "weight" : 65         }   } } ================================================ 下記HPを参考してHashMap+HashMapで作成したのですがうまくいきません。 http://www.atmarkit.co.jp/fjava/javatips/081java010.html Map<String, Object> map = new HashMap<String, Object>(); map.put("school", new HashMap<String, Object>()); ((Map) map.get("school")).put("class", "A"); ((Map) map.get("school")).put("yamada", new HashMap<String, Object>()); ((Map) map.get("school")).get("yamada").put("class", "AB"); ・・・ としても下記エラーとなってしまいます。 ----------------------------------------------------- エラー: シンボルを見つけられません ((Map) map.get("school")).get("yamada").put("class", "AB");                            ^ シンボル: メソッド put(String,String) ----------------------------------------------------- 途中のschoolのvalueにHashMapを入れるところまではうまくいっているようですが、 yamadaのvalueにHashMapを入れて.put()の仕方がわかりません。。。 上記データをHashMap+HashMapで作成するにはどうしたらよいでしょうか? ぜひご教示いただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • HashMap(J2SDK1.4.2_09)について

    import java.util.*; class BubbleSort { public static void Sort(double[] a) { HashMap hmap = new HashMap(); // ☆ int m, i, j; double n, t; for(i=0; i<a.length; i++) { hmap.put(a[i], i); // (1) } for(i=0; i<a.length; i++) { m = hmap.get(a[i]); // (2) if(m >= 9) { System.out.println("キー " + (m+1) + " の値=" + a[i]); } else { System.out.println("キー " + (m+1) + " の 値=" + a[i]); } } } public static void main(String args[]) { double[] a = {7.6, 7.8, 5.6, 4.1, 0.3, 9.9, 1.5, 8.1, 7.1, 5.3}; Sort(a); } } 上記のように、(1)ではkey(main文にある各配列要素)をvalue(keyの要素に対応する番号)に対応付けする、(2)では指定したキーに対応した値を返す、といったことをしたいのですが、エラーが出てしまいコンパイルできません。J2SDK5.0では、☆の部分を、 HashMap<Double,Integer> hmap = new HashMap<Double,Integer>(); のようにすればコンパイル、実行できます。しかし事情があって1.4でしたいのです。どのようにすればできるでしょうか?宜しくお願いします。

    • ベストアンサー
    • Java
  • HashMap要素の操作について

    過去質問を検索致しましたが、適当な質問を見つけられなかった為、質問をさせて頂きます。 ●下記コードのうち、AブロックとBブロックとでどのように異なる為、 Aブロックの値操作が、そのままHashMapへ反省されてしまうのかをご教示願えませんでしょうか? コメント"Aブロック"部分でのArrayList型変数へ操作した内容は、そのままHashMap内の当該キー要素に反映されてしまいます。 コメント"Bブロック"で行う、String型への操作は、HashMap内の当該キー要素に反映はされません。 ■実行環境 ・jdk1.3.1_11 ・Windows XP pro SP2 _________________________________________________ HashMap testMap = new HashMap(); // マップへArrayListとStringを追加 testMap.put("KEY_LIST", new ArrayList()); testMap.put("KEY_STRING", "stringVal"); // Aブロック ArrayList testList = (ArrayList) testMap.get("KEY_LIST"); testList.add("one"); testList.add("two"); testList.remove(0); // Bブロック String testString = (String) testMap.get("KEY_STRING"); testString = "one"; testString = ""; _________________________________________________

    • ベストアンサー
    • Java
  • ArrayListとHashMapを利用する問題について

    『問題』 (1)ArrayListのオブジェクトを生成する。 (2)「何回入力しますか?」と出力し、入力処理を行う。 (3)(2)で入力された回数分、以下の処理を行う。   1)HashMapのオブジェクトを生成する。   2)「名前を入力して下さい。」と出力し、入力処理を行う。 3)「性別を入力して下さい。」と出力し、入力処理を行う。   4)「性別を入力して下さい。」と出力し、入力処理を行う。 5) 1)で作成したHashMapに、それぞれ入力された 名前・年齢・性別を設定する。   6)値を設定したHashMapを(1)で作成したArrayListへ格納する。 (4)ArrayListの件数分、以下の処理を行う。   1)ArrayListより、HashMapを取得する。   2)取得したHashMapより、それぞれ設定されている 名前・年齢・性別を取得する。   3)HashMapより取得した名前・年齢・性別を出力する。 『実行結果』 何回入力しますか? 2 名前を入力して下さい。 iwata 年齢を入力して下さい。 27 性別を入力して下さい。 men 名前を入力して下さい。 hana 年齢を入力して下さい。 21 性別を入力して下さい。 women 名前=iwata 年齢=27 性別=men 名前=hana 年齢=21 性別=women 上記のようなプログラムを書く問題について質問します。 (3)までは自力で書けて実行結果もこの通りになったのですが、 (4)が分からずに、実行結果では値の部分がnullと出力されて しまいました。自分でもこの記述は間違っているというのは感じる のですが、どうしたら値がちゃんと格納されるのか分かりません。 「ArrayListより、HashMapを取得する。」←特にこの部分を どう記述してよいのか・・・ 分かる方、上記の部分の記述方法だけでも構わないので教えて下さい。 『自分で書いたプログラム』 import java.util.*; import java.io.*; public class Sample02{ public static void main(String[] args)throws IOException{ ArrayList list = new ArrayList(); System.out.println("何回で入力しますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=0; i<num; i++){ HashMap map = new HashMap(); System.out.println("名前を入力して下さい。"); String name = br.readLine(); System.out.println("年齢を入力して下さい。"); String age = br.readLine(); System.out.println("性別を入力して下さい。"); String sex= br.readLine(); map.put("名前", name); map.put("年齢",age); map.put("性別",sex); list.add(name); list.add(age); list.add(sex); } for(int i=0; i<num; i++){ HashMap map = new HashMap(); String name = (String)map.get("名前"); String age = (String)map.get("年齢"); String sex = (String)map.get("性別"); System.out.println("名前=" + name); System.out.println("年齢=" + age); System.out.println("性別=" + sex); } } }

    • ベストアンサー
    • Java
  • android HashMapのValueが取得で

    当サイトでご援助下さった皆様、ありがとうございました。 皆様のおかげで、なんとか下記のようなコードを組むことができました。 処理内容はcsvファイルを読み込み、Tokenizerで分割してArrayListに入れています。そしてListの値をHashMapにputしているのですが、キーを指定してもvalueを取得できません。 テキストビューでvalueを取得しようとしたのですが(//確認 ■■の部分)、値が返ってきてないようです。 HashMapにはちゃんとセットされているとおもうのですが・・・ 下記がコードです。 たびたびの質問で恐縮ですが、皆様のお知恵をお借りできればと思います。 csvファイル ----------------- "kye1 , 良い" "kye2 , 普通" "kye3 , 悪い" ----------------- public class TestCsvActivity extends Activity { String path = "/sdcard/test.csv"; Spinner mSpinner1; TextView mTextView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ハッシュマップ mapSet(); Button button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { //@Override public void onClick(View v) { //Activity終了 finishActivity(); } }); } private void mapSet(){ try { // create reader InputStream input = new FileInputStream(path); InputStreamReader ireader=new InputStreamReader(input, "UTF-8"); CSVReader reader = new CSVReader(ireader,',','"',0); String[] csv; List<String> lists = new ArrayList<String>(); while ((csv = reader.readNext()) != null) { StringTokenizer tok = new StringTokenizer(csv[0], ","); while (tok.hasMoreTokens()) { String s = tok.nextToken(); //アイテムの追加 lists.add(s); } HashMap<String ,String> map = new HashMap<String ,String>(); for(int i = 0; i < lists.size(); i = i + 2){ String key = lists.get(i); String value = lists.get(i+1); map.put(key,value); } // 確認 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ TextView tv = (TextView)findViewById(R.id.textView1); tv.setText( map.get("key1") ); //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ } } catch (FileNotFoundException e) { Log.e("ERROR", e.toString()); } catch (UnsupportedEncodingException e) { Log.e("ERROR", e.toString()); } catch (IOException e) { Log.e("ERROR", e.toString()); } } private void finishActivity(){ //Activity終了 finish(); return; } }

  • android HashMapについて助言お願いし

    初心者ですが、どうぞ宜しくお願いします。 下記コードでは、マップに 「 map.put( "Key1", "val1" ); map.put( "key2", "val2" ); 」を追加しているのですが、このデータをキーから取り出しテキストビューに表示しようとしています。 このままではエラーはないのですが、何も表示されない状況です。 初心者の無知な質問となりますが、 テキストビューへの表示方法はどのようにすればよいのでしょうか? 何か別の方法でもよいので、ご教授宜しくお願いいたします。 -------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv1"></TextView> </LinearLayout> ------------------------------------------------------------ package com.test; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //1)HashMapからMapのインスタンスを生成 HashMap<String, String> map = new HashMap<String, String>(); // キーと値のペアを格納 map.put( "Key1", "val1" ); map.put( "key2", "val2" ); // 指定したキーに対応する値を取得. String val = (String)map.get( "key1" ); // テキストビュー取得 TextView tv = (TextView)findViewById(R.id.tv1); tv.setText(val); } }

    • ベストアンサー
    • Java