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;
    }
}



相关文章
|
存储 关系型数据库 MySQL
Mysql字符串数字排序
Mysql字符串数字排序
149 0
|
C语言 数据安全/隐私保护
c语言小游戏--扫雷
c语言小游戏--扫雷
181 0
|
数据库 Python
Python 纯函数与副作用,可变参数与不可变参数
在Python的函数式编程中,Python既可以在调用时对实参进行修改,也可以通过返回值返回函数调用结果。这样的既有返回值又能修改传参的模式,在进行编程开发时,容易遗漏修改传参对结果的影响
204 0
|
Java Python
什么是 Python 垃圾回收机制中的引用计数
Python 中的 __del__ 魔法方法,也被称为对象的终结者,是一个在对象即将被从内存中移除之前被调用的方法。它实际上并不做从内存中删除对象的工作,我们将在后面看到它是如何发生的。相反,这个方法是用来做任何在对象被移除前需要发生的清理工作。
什么是 Python 垃圾回收机制中的引用计数
|
机器学习/深度学习 人工智能 安全
云栖科技评论第73期:传统产业的数字化转型 破除“肌肉记忆” 拥抱变化与未知
因此,破除“肌肉记忆”是传统产业面临数字化浪潮、迈入数字经济时代必须要完成的首要任务,正所谓“不破不立”,破除“肌肉记忆”,树立“对未知的事情一见如故”的积极心态,并从业务战略、组织结构上真正践行数字化转型,继而从中获益。
26182 0
|
C# 索引
C#中修饰符用法“virtual(虚拟函数)、override(重载函数)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”
1、virtual用于修饰方法、属性、索引器或者事件声明,并使它们可以在派生类中被重写。virtual不能与static、abstract、private或者override修饰符一起使用。 声明为virtual的方法被重写时,派生类中可以使用base关键字访问父类中的publid,protected成员。
1711 0
|
9天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!