在哈希映射中搜索特定模式

时间:2014-07-14 06:38:44

标签: java

我有以下代码段。我需要查看地图中是否有任何关键字模式搜索和折扣。请帮助。

public class MapStringSearch {

    public static void main(String[] args) {

        Map test = new HashMap();
        test.put("discount.1", 1);
        test.put("discount.2", 2);
        test.put("discount.3", 3);
        test.put("voucher.4", 4);

    }

}

4 个答案:

答案 0 :(得分:1)

其中一种方式是:

for ( String key : test.keySet() ) {
    if(key.contains("discount"))
      // do something...
    else
      // do something...
}

答案 1 :(得分:1)

Iterator it = test.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pairs = (Map.Entry)it.next();
    System.out.println(pairs.getKey().toLowerCase().contains("YourString"))
}

答案 2 :(得分:0)

我倾向于这样做:

discount.put("1", 1);
discount.put("2", 2);
discount.put("3", 3);

test.put("discounts", discount);

所以要找折扣:

test.get("discounts");

在此之后你可以使用keyset(或entryset)进行迭代,或者使用get ...找到具体的折扣。

你可以迭代密钥集,但是老实说;我将重新定义我的应用程序的de数据方案,以便在hashmap中没有“something。[0-9]”元素。

答案 3 :(得分:0)

我会使用SortedMap而不是HashMap并检查是否tailMap("discount").firstKey().stratsWith("discount")