大家都知道HashMap的键是不同的,现在我的HashMap的value是存的object类型,但是这个object有些是相同的类型,我要知道哪些是一类的,有多少,最后把这些相同的object的key存起来,我还需要知道这些key是哪个object的,
你看一下这个例子,取得objec的类型
HashMap hm=new HashMap();
hm.put("A", 123);
Class c=hm.get("A").getClass();
System.out.println(c.getName());
遍历老map,新建一个map,以老map的value做key,List做value
public static void main(String args[]){
//ArrayList<HashMap> ar = new ArrayList<HashMap>();
HashMap ha = new HashMap();
for(int i = 0; i < 40; i++){
if(i < 10){
ha.put(i, "你好");
}else if(i < 20){
ha.put(i, "你是猪");
}else if(i < 30){
ha.put(i, "小猫咪");
}else{
ha.put(i, "小八戒");
}
}
Iterator iterator = ha.entrySet().iterator();
HashSet<String> 图书管理系统论文 valueSet = new HashSet<String>();
HashMap ham = new HashMap();
while(iterator.hasNext()){
Map.Entry idSid = (Map.Entry)iterator.next();
Object idSidKey = idSid.getKey();//组件id
Object idSidValue = idSid.getValue();
ArrayList a = null;
if(ha.get(idSidKey) != ha.get(idSidKey)){
a = new ArrayList();
}
if(a != null && ha.get(idSidKey) == ha.get(idSidKey)){
a.add(idSidKey);
}
if(a != null){
ham.put(idSidValue, a);
}
/* Map.Entry idSid = (Map.Entry)iterator.next();
Object idSidKey = idSid.getKey();//组件id
Object idSidValue = idSid.getValue();//对应的题目id
System.out.println(idSidKey);
System.out.println(idSidValue);
if(!valueSet.add((String) idSidValue)) {
}*/
}
System.out.println(ham.size());
System.out.println(ham);
本人不才实在不知道怎么放啊,你可以代码给我写一下不,这样放是0啊,具体循环里面怎么判断不知道啊