HashMap 中的一个“坑”!(1)

简介: HashMap 中的一个“坑”!(1)

最近公司新来了一个小伙伴,问了磊哥一个比较“奇怪”的问题,这个问题本身的难度并不大,但比较“隐蔽”,那究竟是什么问题呢?接下来我们一起来看。


起因


最近公司的系统要增加一个新的列表展示功能,功能本身难度并不大,但遇到了一个很“可怪”的问题。小伙伴在执行查询列表时,明明已经使用了 order by 进行排序了,但最终查询出来的数据却还是乱的。


预期中的(正确)结果:


微信图片_20220120233537.jpg


现实中的(非预期)结果:


微信图片_20220120233554.jpg


那到底是哪里出现了问题呢?


问题展示


为了方便展示,我把复杂的业务程序简化成了以下代码:


import java.util.HashMap;
public class App {
    public static void main(String[] args) {
        HashMap<String, Object> result = getList();
        result.forEach((k, v) -> {
            System.out.println(k + ":" + v);
        });
    }
    // 查询方法(简化版)
    public static HashMap<String, Object> getList() {
        HashMap<String, Object> result = new HashMap<>(); // 最终返回的结果集
        // 伪代码:从数据库中查询出了数据,然后对数据进行处理之后,存到了
        for (int i = 1; i <= 5; i++) {
            result.put("2022-10-" + i, "hello java" + i);
        }
        return result;
    }
}



相关文章
|
7月前
|
存储 安全 Java
HashMap的详细解读
HashMap的详细解读
64 0
|
2月前
|
存储 Serverless C++
c++实现HashMap
这篇文章提供了一个用C++实现的简单HashMap类的示例代码,包括构造函数、put、get、remove和size方法,以及私有的hash函数,用于计算键的哈希值。该HashMap使用链地址法解决哈希冲突,适用于学习和理解哈希表的基本概念。
29 0
|
7月前
|
Dart 算法 Java
HashMap的0.75可能只是一个经验值
HashMap的0.75可能只是一个经验值
|
存储 算法
详解HashMap
1.hash code hash code是使用hash函数运算得到的一个值,是对象的身份证号码,用于对象的辨重。在同一运行周期,对同一个对象多次调用hashcode(),只要是用于equals()的内容未变,那么每次得到的hash码也应该不变。,但不同运行周期间hash码可能会不同。
112 0
|
存储 缓存 Java
|
存储 安全 Oracle
HashMap你真的了解吗?
HashMap你真的了解吗?
127 0
HashMap你真的了解吗?
|
存储 安全 算法
再聊 HashMap
HashMap特点: KV 结构,K、V 都允许 null 值; 线程不安全,运行速度快,存取速度快; 非线程安全的
再聊 HashMap
HashMap 中的一个“坑”!(3)
HashMap 中的一个“坑”!(3)
222 0
HashMap 中的一个“坑”!(3)
|
存储
HashMap 中的一个“坑”!(2)
HashMap 中的一个“坑”!(2)
220 0
HashMap 中的一个“坑”!(2)

热门文章

最新文章