您的位置:首页 > 其它

HashMap的两种遍历方式

2016-05-16 18:20 501 查看
在项目中涉及到HashMap遍历的问题,项目是用于商品订单支付。支付方式有百度支付,微信支付以及支付宝支付,如图所示:





现在把这三种支付方式的标识以及RadioButton存放到HashMap中(HashMap<String,RadioButton>
channels
= new
HashMap<>(3)),实现的功能是:

如果选择一种支付方式,那么其他的支付方式就要设置为非选中状态,并且当前的支付方式状态是之前状态的反面。

第一种:通过entrySet的方式来遍历:

/**
*
* @param payChannel 是支付方式
*/
private void selectPayChannel(String payChannel) {
this.payChannel = payChannel;
for(Map.Entry<String,RadioButton> entry:channels.entrySet()){
RadioButton radioButton = entry.getValue();
if(entry.equals(payChannel)){
Boolean isChecked = radioButton.isChecked();
radioButton.setChecked(! isChecked);
}else {
radioButton.setChecked(false);
}
}
}

第二种:通过keySet的方式来遍历:

/**
*
* @param payChannel 是支付方式
*/
private void selectPayChannel(String payChannel) {
this.payChannel = payChannel;
for(String key:channels.keySet()){
RadioButton radioButton = channels.get(key);
if(key.equals(payChannel)){
Boolean isChecked = radioButton.isChecked();
radioButton.setChecked(! isChecked);
}else {
radioButton.setChecked(false);
}
}
}
这两种方式都可以取到里面的值RadioButton。等把整个项目做完就上传上去吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: