2017-07-31 9 views
-2

こんにちは、私は応答から最初に2つの最大値を取得したい。カスタムリストに値を保存しました。私はリストから値を得る方法を知らない。Javaのカスタムリストから上位N個の優先度の高い値を見つける方法は?

JSON応答:

{"elements": [ 
    { 
     "priority": 1 
    }, 
    { 
     "priority": 16 
    }, 
    { 
     "priority": 4 
    }, 
    { 
     "priority": 1 
    }] 
} 
+0

バイナリ検索ツリーを使用します。 –

+5

この問題を解決するために*あなたが最初に書いたコードを貼り付けるのを忘れました。あなたの理解に基づいてどのように動作しなかったかについての説明をして、今すぐにやってください。 – Kon

+0

私はあなたのコンピュータをオフにすることをお勧めします。紙と鉛筆を手に入れ、この問題を解決するために必要な手順を言葉で説明してください。まず、Java構文について心配しないでください。ソリューションの手順を説明するだけです。 –

答えて

1

まず、アレイにあなたの文字列を解析する必要があります。

JSONArray elements = new JSONObject(your_json_string).getJSONArray("elements"); 
Integer[] priorities = new Integer[elements.length()]; 

for (int i = 0; i < elements.length(); i++) { 
    priorities[i] = elements.getJSONObject(i).getInt("priority"); 
} 

次に、あなたは最高の

Arrays.sort(priorities, Collections.reverseOrder()); 
最低の配列をソートする必要があります

ここから0 - > N

からトップN値を見つけることができます
for (int i = 0; i < N; i++){ 
    //Do something with priorities[i] 
} 
関連する問題