Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什么意思

map不有个Key和value吗 一个Key对应一个value 而key和value组合起来的一个组就是entry 要想取出这个组里的key和value就用entry的迭代器迭代即可。

//获得map的迭代器,用作遍历map中的每一个键值对
Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。
<Entry<String,String>>表示map中的键值对都是String类型的。
map.entrySet()是把HashMap类型的数据转换成集合类型
map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter里面。。
迭代器这么用:
while(iter.hasNext()) {
Entry obj = it.next();//就能获得map中的每一个键值对了
}

----------------------------------------------------------------------------

Iterator<Entry<String,String>> iter=map.entrySet().iterator();按正常思路来写怎样写
(调用entrySet()和iterator()不是分开写的吗?
为什么Entry的首字母要大写
----------------------------------------------------------------
Iterator<String> iter;//声明一个迭代器,泛型里面是String类型,表示迭代元素是String类型的
Iterator<Entry<String,String>> iter;//而你提供的要稍微复杂一点,迭代元素本身就是一个Entry键值对,
Entry<String,String>表示其key值是String,value值也是String。

后面部分:
HashSet set=map.entrySet();//将map类型数据转换成集合set类型的。
iter=set.iterator();//获得集合的迭代器。迭代器只针对集合类型的数据,
因此map类型的必须先转换成集合类型才能使用迭代器去获取元素。

Entry首字母大写是因为它是java提供的类。。类首字母大写这是JavaBean规范

不明白继续问。。
---------------------------------------------------------------------------------------------
我学习的时候,HashMap使用Iterator迭代时,用keySet()来获得,在什么情况下,
使用entrySet(),两者有什么区别
-------------------------------------------------------------------------------------------
keySet获得的只是key值的集合,
values获得的是value集合,
entryset获得的是键值对的集合。
具体怎么用看你自己情况需要哈。

转载于:https://www.cnblogs.com/mike-mei/p/9986566.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/** * 根据formBean修改指定参数 / public static boolean updateData(Long id, String tableName, Map<String, Object> fields) throws BusinessException, SQLException { StringBuilder fieldNames = new StringBuilder(""); Iterator<Entry<String, Object>> iter = fields.entrySet().iterator(); if (fields.isEmpty()) { log.error("更新字段为空"); return true; } else { int count = 0; List<Object> fieldValues = new ArrayList<>(); while (iter.hasNext()) { ++count; Entry<String, Object> entry = iter.next(); String fieldName = (String) entry.getKey(); Object fieldValue = entry.getValue(); String splitStr = count == fields.size() ? "" : ","; / 这段代码是一个Java中的三目运算符,它的作用是根据一个条件来决定一个字符串变量的值。 具体来说,这行代码的意思是:如果 count 等于 fields.size(),那么 splitStr 的值为一个空字符串 "",否则 splitStr 的值为逗号 ","。 通常情况下,这行代码用于在生成一个字符串时,根据某些条件来决定是否需要添加分隔符。如果这些条件不满足,就不需要添加分隔符,否则需要添加一个逗号分隔符。*/ fieldNames.append(fieldName + "=?" + splitStr); fieldValues.add(fieldValue); } JDBCAgent jdbc = null; String sql = "update " + tableName + " set " + fieldNames.toString() + " where id =?"; fieldValues.add(id); boolean isUpdate; try { jdbc = new JDBCAgent(); isUpdate = jdbc.execute(sql, fieldValues) > 0; } catch (Exception var15) { log.error(sql); log.error(fieldValues); log.error(var15.getMessage(), var15); throw var15; } finally { if (null != jdbc) { jdbc.close(); } } return isUpdate; } }以这样的形式写一个在java代码中,修改数据库表名为smsserver_out的字段status,条件是如果第一:数据库中字段status的值为U或者Q,第二:user_id等于前端传过来的值,需要考虑的情况为考虑user_id可能是一个也有可能是多个,也有可能为空,为防止sql注入,要采用预编译的方式
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值