Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap ContainsKey vs contains_Java_String_Hashmap - Fatal编程技术网

Java HashMap ContainsKey vs contains

Java HashMap ContainsKey vs contains,java,string,hashmap,Java,String,Hashmap,我有一个如下的场景 我有一个富利的实用类。方法 public static Map<String, String> getFeeList() { Map<String, String> map = new HashMap<String, String>(); map.put("Student Lists", "Student List"); map.put("Student grade", "Student Gr

我有一个如下的场景

我有一个富利的实用类。方法

public static Map<String, String> getFeeList() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("Student Lists", "Student List");
        map.put("Student grade", "Student Grade");
        return map;
    }
我在JSP中调用此方法,并将其与另一个值进行比较,如下所示

下面的feeListsMap只不过是class.getFeeList在JSP中设置为请求和检索

<% if(feeListsMap.containsKey(vo.getSubClassDesc())){%>
<td align="center">0</td>       
<%}else{%>
<td align="center">TEST</td>        
<%}%>
从上面的vo.getSubClassDesc可能包含一些后缀,如“今天的学生名单”、“上个月的学生名单”。。。。 但是上面的签入JSP将只检索精确的键值,并且不适用于“今天的学生列表”、“上个月的学生列表”。 我不想在这里使用子字符串,因为映射可能包含更多的键值对,我不想一直使用子字符串。
有没有一种简单的方法可以将键值与类似于String contains的subclass desc进行比较?

在内置java类中没有直接的方法。你必须这样做

vo.getSubClassDesc().contains(key)

通过循环feeListsMap对象的键。

hmmm不能为每个条目使用String.containsstudent吗?HashMap使用字符串的散列,而不是字符串本身。所以你不可能做你想做的事。您可以转换vo.getSubClassDesc以匹配您的键,也可以获取键集并遍历该键集,然后使用vo.getSubClassDesc.containsKey有没有一种简单的方法可以将键值与工作方式类似于String contains的subClassDesc进行比较?对于Java内置类提供的当前方法,不需要。您应该遍历映射中的键,并按预期执行Stringcontains,这种方法的易用性取决于程序员,在这种情况下,您需要。也许你想使用不同的结构来完成你想要/需要的。从你的例子来看,你似乎认为学生名单应该与上个月的学生名单相匹配。您将如何准确定义您的标准?通用前缀?或者你犯了一个错误,关键应该是学生列表,然后标准是关键是给定字符串的前缀?如果你能负担得起使用番石榴,你可以使用等价物