Java 将对象强制转换为HashMap
我在计算HashMap中的值实例时遇到了问题。 我已经看到有一些附加到对象类的方法看起来似乎能够帮助我,所以我尝试将它们转换为工作方法,但我肯定在某个地方做错了什么 如果有更简单的方法,我还没有找到。注意:图书馆是我的HashMapJava 将对象强制转换为HashMap,java,object,hashmap,Java,Object,Hashmap,我在计算HashMap中的值实例时遇到了问题。 我已经看到有一些附加到对象类的方法看起来似乎能够帮助我,所以我尝试将它们转换为工作方法,但我肯定在某个地方做错了什么 如果有更简单的方法,我还没有找到。注意:图书馆是我的HashMap 你在看哪个医生?for Hashmap没有指定countValues()方法 我认为您需要一个HashMap,因此您可以为每个学生存储一个图书列表(如果我正确阅读了您的代码) 您必须为每个学生创建一个列表,并将其放入HashMap中,然后您可以使用list.size
你在看哪个医生?for Hashmap没有指定countValues()方法 我认为您需要一个
HashMap
,因此您可以为每个学生存储一个图书列表(如果我正确阅读了您的代码)
您必须为每个学生创建一个列表,并将其放入HashMap中,然后您可以使用list.size()简单地计算列表中的条目
e、 g
if(Library.get(id)==null){
put(id,newarraylist());
}
List books=Library.get(id);
int number=books.size()//为您提供大小
忽略线程等。您正在查看哪个文档?for Hashmap没有指定countValues()方法 我认为您需要一个
HashMap
,因此您可以为每个学生存储一个图书列表(如果我正确阅读了您的代码)
您必须为每个学生创建一个列表,并将其放入HashMap中,然后您可以使用list.size()简单地计算列表中的条目
e、 g
if(Library.get(id)==null){
put(id,newarraylist());
}
List books=Library.get(id);
int number=books.size()//为您提供大小
忽略线程等。首先:向
对象投射任何东西(几乎)都没有意义。由于所有内容都扩展了对象
,因此始终可以访问这些方法而无需强制转换
Second:您强制执行的方式实际上是强制执行返回值,而不是库。如果您正在进行一个真正必要的转换,则需要一组额外的括号:
if(((Object)Library).countValues(sid) != 5)
Third:在HashMap
或Object
中都没有countValues
方法。你得自己做
这是要使用的一般算法(我不太愿意发布代码,因为这看起来像是家庭作业):
首先:向对象投出任何东西(几乎)都没有意义。由于所有内容都扩展了对象
,因此始终可以访问这些方法而无需强制转换
Second:您强制执行的方式实际上是强制执行返回值,而不是库。如果您正在进行一个真正必要的转换,则需要一组额外的括号:
if(((Object)Library).countValues(sid) != 5)
Third:在HashMap
或Object
中都没有countValues
方法。你得自己做
这是要使用的一般算法(我不太愿意发布代码,因为这看起来像是家庭作业):
int count=0;
对于(字符串str:Library.values())
{
如果(str==sid)
计数++;
如果(计数=5)
打破
}
如果(计数小于5)
Library.put(id,sid);
其他的
System.out.println(“您已经超出了配额。在取出一本书之前,请先归还一本书。”);
int count=0;
对于(字符串str:Library.values())
{
如果(str==sid)
计数++;
如果(计数=5)
打破
}
如果(计数小于5)
Library.put(id,sid);
其他的
System.out.println(“您已经超出了配额。在取出一本书之前,请先归还一本书。”);
如何定义库?看起来这些值是学生ID字符串?关键是什么?如何定义库?看起来这些值是学生ID字符串?关键是什么?
if(((Object)Library).countValues(sid) != 5)
initialize count to 0
for each entry in Library:
if the value is what you want:
increment the count
int count = 0;
for(String str : Library.values())
{
if(str == sid)
count++;
if(count == 5)
break;
}
if(count < 5)
Library.put(id, sid);
else
System.out.println("You have exceeded your quota. Return a book before you take one out." );