首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么HashMap的key允许空值,而HashTable却不允许

1.从源码分析 HashMap从源码分析: HashMap在put的时候会调用hash()方法来计算key的hashcode值,可以从hash算法中看出当key==null时返回的值为0。...因此key为null时,hash算法返回值为0,不会调用key的hashcode方法。...如果value不为null,而key为空,在执行到int  hash = key.hashCode()时同样会抛出NullPointerException异常 2.从设计师角度分析 HashTable是...HashMap是之后的版本引进的类,它的接口Map表达的意义更为广泛,也许HashMap的设计者认为null作为key和value是有实际意义的,所以才允许为null....当然实际项目中,真的是有value为null的情况的。key为null的情况比较少见,但不代表没有。HashMap允许null为key和value应当是类的设计者思考让这个类更有用的设计吧

1.7K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java:如何更优雅的处理空值?

    有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。 此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助。...除了以上这种”弱提示”的方式,还有一种方式是,返回值是有可能为空的。那要怎么办呢? 我认为我们需要增加一个接口,用来描述这种场景....除非接口的文档注释上加以说明。 那如何约束入参呢?...(我想说,其实你的实体中的字段应该都是由业务含义的,会认真的思考过它存在的价值的,不能因为Optional的存在而滥用) 我们应该更关注于业务,而不只是空值的判断。...小结 可以这样总结Optional的使用: 当使用值为空的情况,并非源于错误时,可以使用Optional! Optional不要用于集合操作!

    5.1K61

    数据库允许空值(null),往往是悲剧的开始(1分钟系列)

    数据库字段允许空值(null)的问题,你遇到过吗?...=1; 索引字段id上的不等于查询,如上图所示: (1)type=ALL,全表扫描; (2)rows=3,全表只有3行; 画外音:第一次select的结果。 知识点2(划重点):允许空值,不等于(!...=)会引发全表扫描; (2)如果允许空值,不等于(!...=)的查询,不会将空值行(row)包含进来,此时的结果集往往是不符合预期的,此时往往要加上一个or条件,把空值(is null)结果包含进来; (3)or可能会导致全表扫描,此时可以优化为union查询...; (4)建表时加上默认(default)值,这样能避免空值的坑; (5)explain工具是一个好东西; 希望大家有收获!

    72610

    postgresql 如何处理空值NULL 与 替换的问题

    最近一直在研究关于POSTGRESQL 开发方面的一些技巧和问题,本期是关于在开发中的一些关于NULL 值处理的问题。...在业务开发中,经常会遇到输入的值为NULL 但是实际上我们需要代入默认值的问题,而通常的处理方法是,在字段加入默认值设置,让不输入的情况下,替换NULL值,同时还具备另一个字段类型转换的功能。...1 默认值取代NULL 2 处理程序可选字段的值为空的情况 3 数据转换和类型的转换 下面我们看看如何进行实际中的相关事例 事例1 程序中在需要两个字段进行计算后,得出结果进行展示,比如买一送一,或买一送二...这里采用了coalesce 函数,在 sell_discount 为NULL的情况下,则我们用1来替代这个值,保证最终计算的逻辑结果是正确的。...实际上,如果在设计表的时候,给这个字段的默认值为1 ,也可以解决这个问题,但是如果早期未做处理,上线后数据量较大,也可以用coalesce 来解决这个问题,并且使用这个函数是灵活的,后面NULL 可以替代的值也是你可以随意指定的

    2K40

    Navi.Soft31.WinForm框架(含下载地址)

    描述 l 提供对编码的新增,删除和修改操作 n 编码前缀:常量.任意字符串 n 中间值类型:年月日,EAN13和无.其中,EAN13用于生成条码使用 n 中间值长度:6和8.针对年月日,格式:yyMMdd...n Tree控件帮助页面.是指将数据以树状形式展示,只需传入参数,页面是公用的 ? n Grid控件帮助页面.是指将数据以Grid网格形式展示,只需传入参数,页面公用 ?...2.3.3DevGrid控件 l 此示例主要针对Grid控件的综合示例.包括分页,多表头,各种栏目类型,父子表,Layout视图,表达式 n 分页 ?...注:常用的栏目类型均支持,包括:复选框,日期,图片列表,按钮,进度条,RadioButton列表等 n 父子表 ? n Layout视图 ? n 表达式 ? 2.3.4Dev图表控件 ?...SQLite数据库如何使用 注1:所有的C#项目的目标平台,建议是x86,即使是64位开发环境中 注2:需要在客户端安装SQLite驱动,可以官方下载,注:本框架使用的是Net4.0的驱动.文件名称是:

    3K70

    winform能做出漂亮的界面吗_winform界面美化第三方控件

    获取工具下载 - DevExpress WinForm v21.2 转换器 转换器允许您动态转换可绑定的属性值。 默认转换器 DevExpress MVVM 框架自动管理简单的类型转换。...格式绑定值 要格式化绑定属性值,请将字符串格式表达式传递给 SetBinding 方法,{0} 字符序列是属性值的占位符。...此方法接受以下参数: 控件名称; 应该绑定的控件属性; 一个字符串数组,填充了可绑定的 ViewModel 属性的名称,这些属性的值应该组合在一起; 一个格式字符串(对于不可编辑控件)或一对转换器(如果允许用户编辑绑定控件...DevExpress 演示中心提供了两个模块,它们将 FirstName 和 LastName 属性的值组合到一个 TextEdit 编辑器中。...DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

    3.2K20

    Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?

    Elasticsearch聚合查询说明Elasticsearch聚合查询是一种强大的工具,允许我们对索引中的数据进行复杂的统计分析和计算。...本文将详细解释一个聚合查询示例,该查询用于统计满足特定条件的文档数量,并计算其占总文档数量的百分比。这里回会分享如何统计某个字段的空值率,然后扩展介绍ES的一些基础知识。...图片空值率查询DSL此查询结构通过 GET /my_index/_search 发送到 Elasticsearch,以实现对索引 my_index 的聚合分析。...max:查找数值字段的最大值。extended_stats:获取数值字段的多个统计数据(平均值、最大值、最小值、总和、方差等)。value_count:计算字段的非空值数量。...并相互引用,统计索引中某一个字段的空值率?语法是怎么样的

    22020

    C# WPF布局控件LayoutControl介绍

    Dev学习地址 文档地址 :https://docs.devexpress.com/ wpf:https://docs.devexpress.com/WPF/7875/wpf-controls winform...LayoutGroup容器允许您将其项目并排(垂直或水平)或作为选项卡进行排列。LayoutGroup可以包含其他LayoutGroup对象作为子对象,以不同的方向排列它们的项目。...这允许创建非线性布局: 使用LayoutControl的最大好处是,它会自动维护子控件的一致布局。即使调整窗口大小、添加或删除控件,或者更改控件的字体设置,控件也不会重叠。...LayoutControl将位于选项卡组中非活动选项卡内的元素的IsEnabled属性设置为False。选择以前不活动的选项卡后,iEnabled属性值将恢复。...为了了解此布局是如何构建的,让我们让组的边框和标题可见: 在这里,这些项目组合如下: LayoutControl垂直排列组1和组5。 第一组水平排列第二组和一个标签组。

    3.6K10

    Java Swing JTable

    1 简介 JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。...要允许水平滚动条,请使用AUTO_RESIZE_OFF调用setAutoResizeMode(int)。...源分发的演示区域中的“ TableExample”目录提供了一些JTable使用情况的完整示例,涵盖了如何使用JTable提供从数据库获取的数据的可编辑视图以及如何修改显示中的列。...构造方法 创建空表格,后续再添加相应数据 JTable() 创建指定行列数的空表格,表头名称默认使用大写字母(A, B, C …)依次表示 JTable(int numRows, int numColumns...注意:该列是按表视图的显示顺序指定的,而不是按TableModel的列顺序指定的。这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将发生变化。

    5.1K10

    Cypress与TestCafe WebUI端到端测试框架Demo

    ) 安装之后使用测试命令测试一下是否安装成功 testcafe chrome tests/ TestCafe创建一个简单的测试例子 TestCafe允许使用JavaScript和TypeScript来编写测试...有关如何配置测试运行的详细信息,可以参考官网 (https://devexpress.github.io/testcafe/documentation/reference/command-line-interface.html...2、观察页面状态 TestCafe允许测试人员观察页面状态。...例如,单击示例web页面上的Submit按钮将打开一个“谢谢”页面;要访问打开页面上的DOM元素,就必须使用Selector函数。 下面的示例演示如何访问文章标题元素并获取其实际文本。...例如,“谢谢”页面上的文章标题应该显示为用户输入的名称。要检查页面Title是否正确,必须向测试添加断言: 下面的测试演示了如何使用内置的断言,后续专题学习。

    3.9K30

    C# WPF图表控件之ChartControl用法指南①

    “ 引言部分,总领全篇文章的中心内容。” WPF的DevExpress ChartControl是一种功能强大的可视化工具,可帮助您将数据显示为二维或伪三维条形图、区域、线和许多其他形式。...: DevExpress.Data.v21.2 DevExpress.Xpf.Core.v21.2 DevExpress.Charts.v21.2.Core DevExpress.Xpf.Charts.v21.2...要在本地复制它们或在以后的产品安装中包含它们,请使用以下目录: C:\ProgramFiles(x86)\DevExpress 21.2\Components\Bin\Framework\ Step 2...有关如何用数据填充图表的更多信息,请参阅提供数据部分。在本主题中,您将图表绑定到ObservableCollection....绑定数据给图表 单击图表控件的智能标记。指定ChartControl.DataSource属性,如下图所示: Step 6. 用数据填充序列 指定应为系列点参数和值提供值的数据源字段。

    2.6K10

    GridView利用CheckBox复选框列实现单选功能

    大家好,又见面了,我是你们的朋友全栈君。 自Dev13.2开始,GridView提供了自带的复选框列,该功能能实现多选操作,方便了不少,那如果想把这个自带的复选框列做成单选,那就需要单独处理了。...先补充一下,GridView的复选框列怎么设置,如下代码片段,只要设置前面两个属性即可在GridView看到有一列复选框(BandedGridView较老版本不支持这个功能,应该得在19.2或者20之后的版本才支持...,具体可以看看自己的版本,如果设置无效,那么说明不支持): //设置显示复选框列 gridview.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect...了解如何显示复选框列,那么想实现单选的功能就需要检测选择操作时候对其他行的CheckBox进行取消选择,GridView提供了一个SelectionChanged事件,我们只需要在这个事件监听这个操作...} view.SelectionChanged += onSelectChanged; } } 如果需求是不可以允许不选的话

    2K20

    unity3d新手入门必备教程

    中间的按钮控制各种不同效果的开关,例如场景视图网格 (Scene View Grid),天空盒 (Skyboxes)和 GUI元素(GUI Elements),启用该按钮将允许你在发布看到这些效果    ...资源流程(Asset Workflow)    这里我们将解释在 Unity中如何使用一个简单的资源。这些步骤是通用的而且可以看作是一个基本操作的演示。在该例子中我们将使用 3D网格。    ...现在你将会发现刚体属性显示在检视面板中,如果在该物体被选中的情况下按下播放键(Play)你将会有惊喜的发现。注意刚体是如何在一个空物体上添加功能的。    ...有两种不同类型的属性:值(Values)和引用(References)。    下图中是一个具有音频源 (Audio Source)组件的空游戏物体。在检视面板中所有音频源的值都是缺省的。...顶点光仅仅在游戏模型的顶点上计算光照,并在模型的表面进行插值。像素光将计算屏幕中每个像素,因此非常费时。一些老的显卡只支持顶点光。    虽然像素渲染比较慢,但是它允许实现顶点光照不能实现的效果。

    6.4K10

    WPF GridControl控件的用法举例

    01 — 前言 WPF中自带的表格控件是DataGrid,但是格式并不是很美观,我们一般用 Dev中类似的控件GridControl来取代,这个控件功能相当强大。...WPF数据网格(GridControl)是一个数据感知控件,用于以不同的布局显示和编辑数据:表格、树状和卡片。GridControl允许用户管理大量数据(排序、分组、筛选等)。...GridControl通过设置TableView的AutoWidth=“Auto”来使Columns占满整个Grid,如果不设置的话有时候你会发现展现出的Grid会多出一列!...4. dxg:GridColumn不能直接包含FontFamily等在DataGridTextColumn中常见的属性,需要重写Template,重写的时候有两个地方需要绑定,Template绑定的是RowData.Row.XX... 官方文档: https://docs.devexpress.com

    1.9K30
    领券