2017-05-17 4 views
0

HashMapのすべての値を返すことは可能ですか?HashMapsを使用すると、設定したしきい値以下の値を持つすべてのキーを返すことができますか?

Map<String, Integer> StockIO = new HashMap<>(); 

String株価値で在庫品目とIntegerている:これはハッシュです。

ここでは単純なものがありません。

これは正しい動作で、その後、テキストエリアに出力していることをクリックするJButtonを使用してコードをテストした:はい

private void OrderActionPerformed(java.awt.event.ActionEvent evt) { 
    Set<String> keys = new HashSet<>(); 
    for(Map.Entry<String,Integer> entry: StockIO.entrySet()) 
    { 
     if (entry.getValue() <= 10) 
     { 
      keys.add(entry.getKey()); 
      Oresult.setText(entry.getKey()); 
     } 
    } 
} 
+0

スレッショルドの例を追加できますか? –

+1

@PeterRader to threshold値が10未満の場合は、その条件を満たすすべての株を返します。 – Sc001010tt

+0

'entrySet()'を繰り返しますか? – Kayaman

答えて

0

私は完全にあなたの質問を得るが、以下、このコードをチェックしませんでした。

HashMap<String,Integer> jj=new HashMap<String, Integer>(); 
jj.put("A",10); 
jj.put("B",20); 
jj.put("c",30); 
jj.put("Bd",50); 
jj.put("Af",40); 
jj.put("Bd",240); 
jj.put("Ads",130); 
jj.put("Bde",240); 
jj.put("As",130); 
jj.put("Bfe",210); 
int threshold=100; 
for(String key:jj.keySet()){ 
    String stock_item=key; 
    Integer stock_value=jj.get(key); 
    if(stock_value<threshold) 
     System.out.println("Item:"+stock_item+" "+" Value:"+stock_value+"\n"); 
    }` 
0

が、それは効率的ではありません。注文する場合は、注文マップ(TreeMap)を使用します。

+0

私はTreeMapsを見ていましたが、注文は重要ではありません、私は本当に、基準を満たしたすべての商品、特定の注文、在庫レベルが数字未満であるという事実を教えてほしいです。 – Sc001010tt

+0

マインド。順序が重要でない場合、なぜ、しきい値以下のすべてのキー値を探していますか? – EJP

+0

レベルが特定のレベルを下回った場合に新しい在庫アイテムを注文するために使用されるため、重要な唯一の基準はハッシュマップの値が数字未満の場合です – Sc001010tt

0

効果的にあなたのキーのコレクションをフィルタリングします。

このコードでは、特定のしきい値以下の値を持つすべてのキーを取得します。 Javaの8で

public static Set<String> keysWithValuesBelowThreshold(Map<String,Integer> map, int threshold) { 
    Set<String> keys = new HashSet<>(); 
    for(Map.Entry<String,Integer> entry: map.entrySet()) { 
    if (entry.getValue() <= threshold) { 
     keys.add(entry.getKey()); 
    } 
    } 
    return keys; 
} 

public static Set<String> keysWithValuesBelowThreshold(Map<String,Integer> map, int threshold) { 
    return map.entrySet().stream() 
     .filter(e -> e.getValue() <= threshold) 
     .map(Map.Entry::getKey) 
     .collect(Collectors.toSet()); 
} 
+0

私はあなたに十分に感謝することができません – Sc001010tt

+0

@ Sc001010tt私はそれがあなたの権利であることを知っていますが、私は理解しません。あなたは私の答えが欠けていることを教えてください、あなたは受け入れられた答えのマークを削除するようにあなたを強要しましたか?あなたは "返す"ことを頼みます、それは別の機能(私がやったこと)を意味します。あなたは "キー"(私は再びやった)を返すように頼みます。あなたは値を "設定された閾値以下"にフィルタリングするように頼みます(これも同じです)。私の答えは何ですか、あなたは私の答えをチェックしませんでしたか?このメソッドは再利用可能です。答えが役に立つ場合は、答えの横にある上向き矢印をクリックして+1することができます。特に質問の編集は私の答えを使用しています。 –

+0

ああ申し訳ありません@オリバー私は2つの答えをチェックすることができると思った、私はたくさんの私はこのサイトを使用していないよ、正直な間違いだった、私はあなたの答えを傷つけることができませんでした尋ねる – Sc001010tt

関連する問題