vb使用字符串分隔字符串_为什么要使用字符串
vb使用字符串分隔字符串
最近,我在一次培训课程中辅导初中生。 任务之一是编写一个类,该类可以根据某些字符串键使映射变形。 创建的初级用户之一的结果包含以下方法:
void dwarwle(HashMap<String,Dwarwable> mapToDwarwle, String dwarwleKey){for( final Entry<String, Dwarwable> entry : mapToDwarwle.entrySet()){dwarwle(entry.getKey(),entry.getValue(),dwarwleKey);}}
该代码通常还可以。 使用散列表中分配给它的实际键来对单个可变形条目进行变形的方法,并且该变形键被分解为单独的方法。 非常简单,我不在这里列出。 只要您知道实际上是什么矮人,变量名也就有意义。 该方法简短易懂,但是参数列表需要一个HashMap
而不是Map
。 为什么我们要限制调用方使用HashMap
? 如果调用者具有TreeMap
并且有充分的理由,该怎么办。 我们是否想要一种可以使TreeMap
相形见separate的单独方法? 当然不是。
期望接口,通过实现。
大三学生将代码替换为HashMap
改为Map,但是大约五分钟后,这位聪明的女士举起了手,并提出了以下问题:
“如果我们将HashMap更改为Map,为什么不将String更改为CharSequence?”
当问题突然出现时,要回答这样的问题并非易事。 我想到的第一件事是原因是我们通常以这种方式这样做,这就是原因。 但这不是一个真正的论点,至少我不会接受那样的事情,除了学生我也不接受这样的回答。 无论如何,这将是非常独裁的风格。
真正的答案是,该参数在映射中用作键,并且映射的键应该是不可变的(至少突变应具有对等值和哈希码计算的弹性)。 CharSequence
是一个接口,而Java中的接口(很遗憾)不能保证不变性。 只有实现可以。 String
是此接口的一个良好的,广为人知的且经过测试的实现,因此可以是一个不错的选择。 关于stackoverflow有很好的讨论。
在这种特殊情况下,我们期望实现,因为我们需要不可变的东西,并且我们“不能”信任调用方传递不可变的字符序列实现。 或者:我们可以,但是要付出代价。 如果后来通过并修改了StringBuilder
,那么我们矮小的程序库可能无法正常工作,并且可能会开始责备战争。 在设计API和库时,我们不仅应考虑可能的使用,还应考虑实际的平均使用情况。
一个库好坏了,没有使用好。
这也可以应用于其他产品,不仅是库,而且可能会导致太大的问题(物理和武器)。
翻译自: https://www.javacodegeeks.com/2014/10/why-to-use-string.html
vb使用字符串分隔字符串
vb使用字符串分隔字符串_为什么要使用字符串相关推荐
- lua字符串转数组_深入Lua:字符串管理
Lua的字符串对象表示为下面结构: typedef struct TString {CommonHeader;// 字符串的子类型有两种:长字符串和短字符串// 短字符串:extra表示Lua保留字的 ...
- java字符串连接效率_关于java:字符串连接中的“+”是否会影响效率?
本问题已经有最佳答案,请猛点这里访问. 我在java中使用过String,StringBuilder和StringBuffer. 我想到了这个问题,而我从效率的角度思考. 字符串连接中的"+ ...
- python字符串的内部函数_「Python」字符串操作内置函数
目录: capitalize casefold center count encode decode endswith expandtabs find format format_map index ...
- python 逗号赋值_python中字符串赋值 逗号_四、python字符串
4.1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最大值.最小值)都适用于字符串. 字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的. 4.2.设置字符串的格式 ...
- python字符串拼接数字_解决Python中字符串和数字拼接报错的方法
解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...
- java将表情字符串转表情符号_使用java将字符串中的表情符号替换为字符串
如何从字符串中删除表情符号我的简单代码是.. public static void main(String[] args) throws SQLException { String str=" ...
- Java中什么是字符串的拷贝_关于java中字符串对象的拷贝
1两种数据类型 java中有两种数据类型: 基本数据类型 引用数据类型 基本数据类型有整型.浮点型的数字常量和字符常量,而类是引用数据类型,所谓引用就是一个对象等于另外一个对象时(前提同一类),都使用 ...
- python比较两个字符串相似度_详解Python 字符串相似性的几种度量方法
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...
- python字符串切片用法_详解Python字符串切片
在python中,我们定义好一个字符串,如下所示. 在python中定义个字符串然后把它赋值给一个变量. 我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始(==,我自己都觉得写的好脑残了 ...
- mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串
题目链接: https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string 难度:中等 通过率:35.6% 题目描述: ...
最新文章
- mui 微信支付 与springMVC服务器交互
- ui培训教程分享:平面设计怎样视觉空间感?
- s.assign()用法c++_assign是什么意思
- Spring手动回滚事务
- docker yum 安装
- java面向对象的理解_java胜于C语言,却又静态面向对象,简单?
- vs2008安装_Visual Studio2008安装教程
- centos 网卡名称修改
- iOS 合并静态库出现 can't move temporary file错误
- 都说 VR 开发坑太多,结果华为云 5G Cloud VR 放了个大招儿!
- IDEA使用lombok时warn:Generating equals/hashCode implementation but without a call to superclass
- 阿里图标库运用于项目---实例
- 秀球技:倒和其他无用
- IIS无法启动计算机上的服务W3SVC如何修复、万维网发布服务(w3svc)已停止解决办法
- [11g](ALTER SYSTEM SUSPEND)Suspending and Resuming a Database
- 最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程)
- 可以旅游了_原水_新浪博客
- Python之判断一个数是否为素数
- Web-html、css、JavaScript_02
- 怎么把ubuntu系统从英文修改为中文界面