任意の深さで深くネストされたハッシュテーブルから値を取得するにはどうすればよいですか?

xScub

値が見つかった後、値を取得するのに問題があります。値のハッシュテーブルを作成することから始めましたが、最終的にはネストされたハッシュテーブルが必要であることがわかりました。問題が発生するにつれて、深さが不明な複数のレイヤーが必要になることがわかりました。基本的に、ハッシュテーブルのツリーを作成します。これが良いアプローチであったかどうかはよくわかりませんが、問題がますます複雑になったときに私が思いついたアプローチです。

分岐構造を動的に作成する方法はありますが、検索する文字列キーを指定して特定の分岐を取得するときに問題が発生します。構造の深さが不明であるため、トラバースする唯一の方法は、各ブランチに再帰的に飛び込み、そのレベルのキーセットに文字列値が存在するかどうかを確認することであると考えました。

この特定のセクションで私が抱えている問題は、値が見つかったらそのブランチを返すことですが、スタックを介して終了すると、目的の値が壊れてしまいます。とても親密な気がしますが、何かが足りないかもしれません。値が見つかったら例外をスローし、目的の値を例外としてキャッチすることを検討しました。しかし、これを行うのがもっと正しいはずだと思います。再帰関数またはデータ構造設計を正しく実装する方法に関するヘルプやアドバイスをいただければ幸いです。

public Hashtable<Object,Object> searchRollupTree(Hashtable<Object,Object> tree, String searchTerm){
     Hashtable<Object,Object> returningTable = tree;
     for(Object item: tree.keySet()){
         if(tree.keyset().contains(searchTerm)){
            returningTable = (Hashtable<Object, Object>) tree.get(searchTerm)
            return returningTable;
         }else{
              searchRollupTree((Hashtable) tree.get(item.toString()),searchTerm);
         }
     }
     Hashtable<Object, Object> voidReturningTable = new Hashtable<Object,Object>();
     voidReturningTable.put("NotFound","Null");
     return voidReturningTable;
     }

}
熟女

問題はあなたが1の深さでハスタブルを見つけた場合、あなたはそれを返さないでしょう。

public Hashtable<Object,Object> searchRollupTree(Hashtable<Object,Object> tree, String searchTerm){
     Hashtable<Object,Object> returningTable = tree;
     for(Object item: tree.keySet()){
         if(tree.keyset().contains(searchTerm)){
            returningTable = (Hashtable<Object, Object>) tree.get(searchTerm)
            return returningTable;
         }else{
            returningTable = searchRollupTree((Hashtable) 
              tree.get(item.toString()),searchTerm);
           //assuming NotFound is only a key if no table was found
           if(!returningTable.containsKey("NotFound"){    
             return returningTable;
           }
        }
    }
    Hashtable<Object, Object> voidReturningTable = new Hashtable<Object,Object>();
    voidReturningTable.put("NotFound","Null");
    return voidReturningTable;
}

PS:searchRollupTreeを呼び出す前に、要素が実際にHashTableであることを確認してから実行する必要があります。(そうでない場合は、おそらく実行をスローします)。

編集:voidTableの戻り値は、各HashTableの最初の要素によってのみ渡されるため、ループの外側に配置されました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rubyで深くネストされたハッシュの値にアクセスするにはどうすればよいですか?

分類Dev

文字列、オブジェクト、配列を含むJavascriptオブジェクトから、動的に指定された任意の深くネストされた値を取得するにはどうすればよいですか?

分類Dev

Haskell | 深くネストされたデータ構造から値を取得するにはどうすればよいですか?

分類Dev

深くネストされたオブジェクトの値を取得するにはどうすればよいですか?

分類Dev

深くネストされているが任意のデータ構造の値を置き換えるにはどうすればよいですか?

分類Dev

Perl:キーでソートされたネストされたハッシュの値を取得するにはどうすればよいですか?

分類Dev

ネストされたレベルの深さの式から値を設定するにはどうすればよいですか?

分類Dev

同様のキーで任意の深さの複数のネストされた辞書をマージするにはどうすればよいですか?

分類Dev

ネストのレベルが不明なネストされたハッシュから値を抽出するにはどうすればよいですか?

分類Dev

深くネストされたハッシュと配列から特定の値をループする

分類Dev

luaのネストされたテーブルからインデックスで値を取得するにはどうすればよいですか?

分類Dev

ネストされた配列を持つハッシュからハッシュキーを取得するにはどうすればよいですか?

分類Dev

リスト内の深くネストされたマップをフィルタリングするにはどうすればよいですか?

分類Dev

深くネストされた不変オブジェクトの複数のコピーを作成するにはどうすればよいですか?

分類Dev

深くネストされた子を変更するにはどうすればよいですか?

分類Dev

Perlでハッシュのネストされたキー値を取得するにはどうすればよいですか?

分類Dev

深くネストされたオブジェクトの状態から削除するにはどうすればよいですか?

分類Dev

PowerShellで区切り文字列をネストされたハッシュテーブルに変換するにはどうすればよいですか?

分類Dev

深くネストされたハッシュ配列からのキー値に基づいてハッシュ配列をマージする方法

分類Dev

Pythonの辞書から深くネストされたkey:valuesを選択するにはどうすればよいですか?

分類Dev

Reactで深くネストされたプロパティの状態を設定するにはどうすればよいですか?

分類Dev

MongoDBの配列の奥深くにネストされたオブジェクトを見つけるにはどうすればよいですか?

分類Dev

jqを使用して深くネストされたjson内のすべてのキーを一覧表示するにはどうすればよいですか?

分類Dev

GolangでJSONの一意のフィールド名と深くネストされた子フィールドの値を取得するにはどうすればよいですか?

分類Dev

リストの深さのレベルを取得するにはどうすればよいですか?

分類Dev

任意に深くネストされたリストからフラットリストを作成する関数を作成するにはどうすればよいですか?

分類Dev

Immutable.jsで深くネストされた値を設定するにはどうすればよいですか?

分類Dev

深くネストされたオブジェクトに変更を保存するにはどうすればよいですか?

分類Dev

深くネストされたRubyハッシュから空の値を削除する

Related 関連記事

  1. 1

    Rubyで深くネストされたハッシュの値にアクセスするにはどうすればよいですか?

  2. 2

    文字列、オブジェクト、配列を含むJavascriptオブジェクトから、動的に指定された任意の深くネストされた値を取得するにはどうすればよいですか?

  3. 3

    Haskell | 深くネストされたデータ構造から値を取得するにはどうすればよいですか?

  4. 4

    深くネストされたオブジェクトの値を取得するにはどうすればよいですか?

  5. 5

    深くネストされているが任意のデータ構造の値を置き換えるにはどうすればよいですか?

  6. 6

    Perl:キーでソートされたネストされたハッシュの値を取得するにはどうすればよいですか?

  7. 7

    ネストされたレベルの深さの式から値を設定するにはどうすればよいですか?

  8. 8

    同様のキーで任意の深さの複数のネストされた辞書をマージするにはどうすればよいですか?

  9. 9

    ネストのレベルが不明なネストされたハッシュから値を抽出するにはどうすればよいですか?

  10. 10

    深くネストされたハッシュと配列から特定の値をループする

  11. 11

    luaのネストされたテーブルからインデックスで値を取得するにはどうすればよいですか?

  12. 12

    ネストされた配列を持つハッシュからハッシュキーを取得するにはどうすればよいですか?

  13. 13

    リスト内の深くネストされたマップをフィルタリングするにはどうすればよいですか?

  14. 14

    深くネストされた不変オブジェクトの複数のコピーを作成するにはどうすればよいですか?

  15. 15

    深くネストされた子を変更するにはどうすればよいですか?

  16. 16

    Perlでハッシュのネストされたキー値を取得するにはどうすればよいですか?

  17. 17

    深くネストされたオブジェクトの状態から削除するにはどうすればよいですか?

  18. 18

    PowerShellで区切り文字列をネストされたハッシュテーブルに変換するにはどうすればよいですか?

  19. 19

    深くネストされたハッシュ配列からのキー値に基づいてハッシュ配列をマージする方法

  20. 20

    Pythonの辞書から深くネストされたkey:valuesを選択するにはどうすればよいですか?

  21. 21

    Reactで深くネストされたプロパティの状態を設定するにはどうすればよいですか?

  22. 22

    MongoDBの配列の奥深くにネストされたオブジェクトを見つけるにはどうすればよいですか?

  23. 23

    jqを使用して深くネストされたjson内のすべてのキーを一覧表示するにはどうすればよいですか?

  24. 24

    GolangでJSONの一意のフィールド名と深くネストされた子フィールドの値を取得するにはどうすればよいですか?

  25. 25

    リストの深さのレベルを取得するにはどうすればよいですか?

  26. 26

    任意に深くネストされたリストからフラットリストを作成する関数を作成するにはどうすればよいですか?

  27. 27

    Immutable.jsで深くネストされた値を設定するにはどうすればよいですか?

  28. 28

    深くネストされたオブジェクトに変更を保存するにはどうすればよいですか?

  29. 29

    深くネストされたRubyハッシュから空の値を削除する

ホットタグ

アーカイブ