- ベストアンサー
データ構造のmapとは?
mapとはなんでしょうか?英語の意味は写像ですが、 "キーと値が一対一で結びついているもの"で良いでしょうか? set,table,listの違いについても教えてください。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- MapからListへ
どなたか教えてください。 Mapからあるvalueの値のkeyの値をListへ追加していきたいのですがどのようにしたらよいでしょうか? testmap.put(1,TEST1) testmap.put(2,TEST2) testmap.put(3,TEST1) ・ ・ ・ testmapのvalue値「TEST1」のkey1、3をListへ追加したいです。
- ベストアンサー
- Java
- android CSVファイルのデータを
初心者ですが宜しくお願いします。 やりたい処理えですが、CSVファイルのデータをHashMapにセットしたいのです。 現在は下記のように直接値をセットしています。 この値をCSVからセットするにはどうすればよいでしょうか? HashMap<String, String> map = new HashMap<String, String>(); // キーと値のペアを格納 map.put( "Key1", "あ1001" ); map.put( "key2", "い1002" ); map.put( "Key3", "う1003" ); map.put( "key4", "え1004" ); map.put( "key5", "err" ); ------------------------------------ value.csv "key2", "い1002" "Key3", "う1003" "key4", "え1004" "key5", "err" ------------------------------------ 上記csvファイルを作り、読み込むところまではわかります。 ヒント、参考サイトや参考書の情報でもかまいません。 どうぞよろしくおねがいいたします。
- ベストアンサー
- Java
- std::mapの要素を別のキーに移動したいのですがどうしたら良いでし
std::mapの要素を別のキーに移動したいのですがどうしたら良いでしょうか。 例 map<int, list<string>> m; キー|値 1 |"aaa","bbb" 2 |"ccc" ↓ キー|値 2 |"ccc" 3 |"aaa","bbb" 検索して削除して挿入を考えましたがもっと効率の良い方法はあるのでしょうか?
- ベストアンサー
- C・C++・C#
- MAPに関して
以下のように、マップにCLASS_Aのリストのリストを格納しています。 CLASS_A { private int a getter setter } MAP<String,List<List<CLASS_A>>> map = new HashMap<String,List<List<classA>>> キーを元に、マップからリストのリストを取得した場合に CLASS_Aからint aを取得する場合 for List<List<CLASS_A> a : DaoList(Daoの取得結果)) for List<CLASS_A> b : a) b.get() } } でよろしいでしょうか? (2重ループになってしまうので、もっと簡単な取得方法あったら教えてください)
- 締切済み
- Java
- Mapの要素の削除と挿入
こんにちは。 Listに挿入されたMapでKeyがFLGのValueが1のものを List要素ごと削除しFlgが0のものに新しくmap.put("LBL","○");したいのですがどうもうまくいきません。 getListMap()はTestListクラスにあるMapの挿入されたリストを返すメソッドです。 よろしくお願いします。 Mapの中身はこのようになっています。 [key=TYPE:value=AAA0] [key=NO:value=000] [key=FLG:value=1] [key=TYPE:value=AAA1] [key=NO:value=001] [key=FLG:value=0] [key=TYPE:value=AAA2] [key=NO:value=002] [key=FLG:value=1] [key=TYPE:value=AAA3] [key=NO:value=003] [key=FLG:value=1] [key=TYPE:value=AAA4] [key=NO:value=004] [key=FLG:value=1] [key=TYPE:value=AAA5] [key=NO:value=005] [key=FLG:value=0] [key=TYPE:value=AAA6] [key=NO:value=006] [key=FLG:value=1] [key=TYPE:value=AAA7] [key=NO:value=007] [key=FLG:value=0] [key=TYPE:value=AAA8] [key=NO:value=008] [key=FLG:value=1] [key=TYPE:value=AAA9] [key=NO:value=009] [key=FLG:value=1] public class Test { public static void main(String[] args) { TestList tl = new TestList(); List list = tl.getListMap(); for (int i = 0; i < list.size() ; i++){ Map map = (Map)list.get(i); Set keyset = map.keySet(); Iterator it = keyset.iterator(); System.out.println("-------------------"); while(it.hasNext()){ Object key = it.next(); if(map.get(key)=="1"){ list.remove(i); }else{ map.put("LBL","○"); } System.out.print("[key=" + key); System.out.println(":value=" + map.get(key)+"]"); } } } }
- ベストアンサー
- Java
- MAPコンテナの宣言部分の表記に関して質問です
C++でSTLのMAPを勉強しだしたのですが、 よく分からない部分を見つけました。 以下のようにmapを使う際に、 mapコンテナの宣言をするのは理解できたのですが、 map<string, int> mmbr ; // (string型,int型)の対データを管理 map<int, int> ikk ; //(int型,int型)の対データを管理 他人が作成したサンプルを見ていたら、 以下のようにmapのコンテナ宣言がされていました。 ********************************************************* typedef KEY key_type; typedef typename std::map<key_type, value_type> container_type; ********************************************************* 1行目でtypedefしているだけなので理解できるのですが、 2行目で行っているmapコンテナの宣言の意味が どうも意味が分からないでいます。 mapコンテナの宣言で、 <string, int>や<int, int>のようにせず、 <key_type, value_type>としているのは、 どういう意味なのでしょうか? どうぞ宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- Mapに登録した値を登録した順に取り出したいです。
Mapに登録した値を登録した順に取り出したいです。 TreeMapを使えば順番に取れるという風に書いてありましたが、 どうもキーの昇順で出ているようで、こちらの希望する出し方ができません。 私は登録した順番で取りたいのですが、どの様にすればよいでしょうか。 ちなみに、マップのキー、値ともにString型です。
- ベストアンサー
- Java
- 「コレクション」の違い
こんにちわ、コレクションの中で色々違いがわからないものがあるので質問させてください。 本題に入る前に確認ですが、List、Set、Mapは、 左から重複OK、重複NG、重複NG&キーで管理という考えでいいでしょうか? もし考え方が違っていたらご指摘ください。 本題に入らせていただきたいのですが、色々とある中の違いを教えてください。 ・ArrayListとLinkedList ・HashSet(Map)とTreeSet(Map) この違いがわかりません。 どうぞよろしくお願いします。
- ベストアンサー
- Java
- ListからMapを作成 MapのValueにはListをput
すみません、どなたか教えて下さい。 あるListからMapを作成したく、同じkeyが存在する場合、valueのListへ値を追加したいですのですがConcurrentModificationExceptionエラーが返されてしまいます。エラーを返さないように変数を使い分け工夫したつもりですが。。。((1)でmapAにもaddされている!?)他に良い方法はないでしょうか? Map mapA = new TreeMap(); Map mapB = new TreeMap(); Iterator it = listA.iterator(); while (it.hasNext()) { Bean bean = (Bean)it.next(); List mapvaluelist = new ArrayList(); if (mapA.size()==0){ mapvaluelist.add(bean); mapA.put(bean.getName(),mapvaluelist); }else{ if (mapB.size()!=0){ mapA = mapB; } Set keyset = mapA.keySet(); Iterator itmap = keyset.iterator(); while (itmap.hasNext()){ String mapkey = (String)itmap.next(); if (bean.getName().equals(mapkey)){ mapvaluelist = (List)mapA.get(mapkey); mapvaluelist.add(bean); mapB.put(bean.getName(),mapvaluelist); (1) }else{ mapvaluelist.clear(); mapvaluelist.add(bean); mapB.put(bean.getName(),mapvaluelist); } } } }
- 締切済み
- Java
- STLのmapを使ってコードを書き換える
問題文説明とコードは長いので、リンク先のページでまとめました。 http://codepad.org/M5yyvUud 問題文通りのプログラムをstd::setを使って書いてみたのですが、このコードをstd::setではなく、std::mapを使って書き換えるにはどのようにすればよろしいでしょうか? mapを使ってキーとコードを関連付けて、この単語にはこの数値が格納されていると調べれるようにしたいです。 setの時のように上手く組めず悩んでいます。 ご教授よろしくお願いいたします。
- 締切済み
- C・C++・C#
お礼
回答ありがとうございます。 なんかちゃんと定義されていないのって気持ち悪いんですよねぇ。 スッキリするまでグラフ理論を勉強しようと思います。 ありがとうございました。