Mapのキーの順序。

javaのお話。

「Mapでデータを管理しましょう。」と仕様が決まったのはいいけれど、「Mapからgetするとき、対象のキーがない場合はMapに一番最初に格納したキーの値を取得しましょう」ということになりました。

普段、MapといえばHashMapを利用することが多く、HashMapはキーの順序を保持しない(はずな)ので、どうすればいいのか困ってしまいました。
「TreeMapだとキーの順序をソートしちゃうし。うーん仕様を変えちゃおうか」と悩んでしまいました。

javaのapiを眺めていたらLinkedHashMapだとキーを格納順に保持すると書いて合ったので、そこは無事解決。

LinkedHashMapを使えばいいのは分かったけれど、どうやって1番目のデータをとればいいのかな?
もちろんMapには何番目のキーを取るというメソッドはないので、keySetメソッドでキーの一覧が入ったSetオブジェクトを取得させました。

しかしSetにも何番目を取得というのはないのです。
でもSetには順番に内容取得するためのiteratorや拡張for文(for-each文)を使えるので、とりあえず拡張for文で必要なキーデータを取得して即breakさせて対応しました。

ふ~。
しかし、Map→Set→拡張for文という方法ではなく、もっとスマートなやり方はないのだろうか?
関連記事


--------------------------------------------------------------------------------------

コメントの投稿

非公開コメント

このブログについて
  • 全記事一覧(時間順)
  • このブログについて
  • 私のプロフィール
  • 当ブログで扱っている動画について
  • 記事違いなコメントのお返事

  • カテゴリー
    twitter
    カレンダー
    05 | 2017/06 | 07
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -
    Amazon
    でたらめな当ブログにぴったりな商品を自動で表示するみたいです。



    月別アーカイブ
    プロフィール

    たづみ

    Author:たづみ
    ・1981年生まれの男
    ・もう少し詳細なプロフィールはこちらで

    最新コメント
    アクセスランキング
    [ジャンルランキング]
    日記
    1109位
    アクセスランキングを見る>>

    [サブジャンルランキング]
    会社員・OL
    236位
    アクセスランキングを見る>>