前几天项目用到Map,接着调用Map.entrySet(),结果产生了一些意外的后果.
就是,持久化数据数据的时候出现setter of com.hiber.Hibernate.Test.id 异常.
此异常是提醒,pojo里面未有属性的getter.
因为我在其他方法里面保存过,未曾出现异常,觉得甚是奇怪.后来发现,原来是Map.entrySet()搞的鬼,根据java api.
返回此映射中包含的映射关系的 set 视图。返回的 set 中的每个元素都是一个 Map.Entry。该 set 受映射支持,所以对映射的改变可在此 set 中反映出来,反之亦然。如果修改映射的同时正在对该 set 进行迭代(除了通过迭代器自己的 remove 操作,或者通过在迭代器返回的映射项上执行 setValue 操作外),则迭代结果是不明确的。set 支持通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作实现元素移除,即从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。
为此,我写了一个测试代码.
public class TestMap {
/**
* @param args
*/
public static void main(String[] args) {
Map test = new HashMap();
//测试,put进TestObject
for(int i=0; i<5; i++){
TestObject to = new TestObject();
test.put(new Integer(i), to);
}
//输出,这里进行类型强制转换,出现java.lang.ClassCastException.
for(Iterator it = test.entrySet().iterator(); it.hasNext();){
TestObjectt = (TestObject)it.next();
t.toString();
//System.out.println(t.);
}
//输出,这里直接转换成Object,并且输出的是自己定义的toString()
//且可以正常输出,为此,我不理解.为什么转换的时候保存.
//估计是里面做了些什么手脚.
for(Iterator it = test.entrySet().iterator(); it.hasNext();){
TestObjectt = (TestObject)it.next();
t.toString();
//System.out.println(t.);
}
}
}
class TestObject{
public String toString(){
System.out.println("TestObject");
return null;
}
}
分享到:
相关推荐
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { ...for(Map.Entry entry:a.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue()); }
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...
for(Map.Entry,Object> entry:data.entrySet()){ View v = (View) entry.getKey(); v.setOnClickListener(null); } } private void registerLisntener(){ for(Map.Entry,Object> entry:data.entrySet...
用自定义的MyHashMap彻底了解EntrySet ()方法,及put()和get()方法实现
<br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object key = entry.getKey(); <br> Object val = entry.getValue()...
Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); } Map map =...
Iterator it=map.entrySet().iterator(); while(it.hasNext()){ Map.Entry m = (Map.Entry) it.next(); String key=(String)m.getKey(); String value=(String) m.getValue(); System.out....
java.util.Map.Entry entry = (java.util.Map.Entry) it.next(); System.out.print(entry.getValue()); } System.out.println(); System.out.println(Calendar.getInstance().getTimeInMillis() - bs); } } ``...
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) {
遍历 Map 集合有多种方式,例如使用 `keySet()` 方法获取所有键,使用 `entrySet()` 方法获取所有键值对,使用 `values()` 方法获取所有值。例如: ``` for (Object o : map.keySet()) { map.get(o); } ``` 或 ``` ...
import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; public class TestTreeMap { public static void main(String[] args) { TreeMap, ArrayList<City>> map = new TreeMap(); ...
return map.entrySet(); } public boolean isEmpty() { // TODO Auto-generated method stub return map.isEmpty(); } public Set keySet() { // TODO Auto-generated method stub return map.keySet(); ...
for (Map.Entry, Object> m : exp.entrySet()) { //如果value是JSONObject类型,则将该类型转化成Map类型,继续循环比较 if (JSONObject.class == m.getValue().getClass()) { Map, Object> expDataInfo = ...
map.entrySet() // 返回Entity[{key,value},{key,value}] map.containsKey('kevin') //返回:false function Map() { this.keys = new Array(); this.data = new Object(); /** * 放入一个键值对 * @par
<FONT color=#0000ff>//方法一: 用entrySet() Iterator it = emails.entrySet().iterator();... Map.Entry m=(Map.Entry)it.next(); logger.info("email-" + m.getKey() + ":" + m.getValue()); }
1212Map.doc 目的: 学会使用 Map、TreeMap 完成内容 1. 定义 Map, 加入一些数据 使用 entrySet 方式显示全部键、值其内容 使用 keySet 方式显示全部键、值内容 使用 values 显示全部值内容
import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer> ...
import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer> ...
文章目录简介基本概念使用Stream获取map的key使用stream获取map的value总结 怎么在java 8的map中使用stream 简介 Map是java中非常常用的一个集合类型,我们通常也需要去...Set<Map> entries = someMap.entrySet(); 获
for(Map.Entry, String> entry: params.entrySet()){ pathBuilder.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue())).append("&"); } //...