我有这样的事情:
private void convertLevel(String courseLevel)
{
//This allows you to define your list with string keys instead of
//using a bunch of ifs.
Hashtable<String, Character> CourseLevels = new Hashtable<String, Character>();
{
CourseLevels.put("IB", '7');
CourseLevels.put("Academic", '1');
CourseLevels.put("Applied", '1');
CourseLevels.put("ELL", '9');
CourseLevels.put("Special Education", '8');
};
//Determine if the courseLevel exists in our list.
if (CourseLevels.contains(courseLevel))
{
//Assuming level is defined as a char and not a string
//Yes it does, use it.
level = CourseLevels.get(courseLevel); // gives me an error saying incompatible types
}
else
{
//if not use the default.
level = DEFAULT_LEVEL;
}
}
任何人都可以告诉我为什么会这样吗
level是一个字符串,在类的其他部分中定义
答案 0 :(得分:2)
hashtable&#39; s contains(Object value)
测试值,而不是键!基本上,它与containsValue()
相同。您可能想要使用containsKey()
方法。
答案 1 :(得分:0)
好吧,我会尝试解释我所知道的。 Hashtable是一个具有类似结构的表 key =&gt;值
其中key就像&#34; name&#34;表的每个元素和值都是它的值 我们以一些代码为例
Hashtable<String, String> table = new Hashtable<String, String>();
table.put("key here", "value here");
table.put("hash", "table");
此表格如下所示
"key here" => "value here"
"hash" => "table"
现在我们可以通过调用get方法
来获取存储在表中的值String value = table.get("key here"); //will return "value here"
String value2 = table.get("hash"); //will return "table"
Hashtables就像php关联数组。 除了在Hashtable中搜索值非常快,因为它的搜索是通过哈希算法进行的,而不是通过比较表中的每个项目