关于hashmap在开发中的使用

前言

作为一个高频在实际工作中被使用的这么一个集合,以下就是我今天的小结
hashmap
一个map对象存放的都是键值对的数据
Map中是一个key有且只有一个value.
但是一个value可以对应多个key值.
说白了就是,key不能重复, 但是value可以重复。

使用key获取value

一般都是通过key,然后map.get(key)获得到value.

遍历map

使用For-Each迭代entries

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for(Map.Entry<Integer, Integer> entry : map.entrySet()){
	System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue())
}

mybatis获取数据之后封装成map需要注意什么

映射文件的resultType
选择hashmap
查询语句是一个坑,字段值将作为value, 而不是其他某个字段的key, 也就是说,sql语句的写法应该是
select 字段 as 设置key名,… from 表名
as前的这个将作为value
as后的这个将作为key, 可以是一切字符串。
说白了就是表的字段名或者字段的别名将是key, 而字段本身的值将是键值对的值。sql查询多少字段就有多少个键值对,表中有多少行就有多少个map对象。
还有一个坑就是方法的返回值应该是,List<HashMap<Object , Object>>
如果这样一来会导致业务代码多一层循环,可以放弃这种方式。还是直接接收list。

list怎么转换成map

例如:

List<UserEntity> list = UserMapper.getAllAsList();
if(list.isEmpty())
{
	return;
}
Map<string,String> map = list.stream().collect(Collectors.toMap(UserEntity::getId, UserEntity::getName);

解决数据表中有字段重复,被作为key时报错

倘若此时的表的id并不满足做Key的要求, 有重复的id
那么就应该加上
(key1, key2) -> key1)

Map<string,String> map = list.stream().collect(Collectors.toMap(UserEntity::getId, UserEntity::getName,(key1, key2) -> key1));

为什么要搞hashmap

说到底是一个优化的问题, 当一个循环中每次都要去拿数据库的数据时,如果可以在循环外直接只拿一次, 性能就好得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值