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使用字符串分隔字符串_为什么要使用字符串相关推荐

  1. lua字符串转数组_深入Lua:字符串管理

    Lua的字符串对象表示为下面结构: typedef struct TString {CommonHeader;// 字符串的子类型有两种:长字符串和短字符串// 短字符串:extra表示Lua保留字的 ...

  2. java字符串连接效率_关于java:字符串连接中的“+”是否会影响效率?

    本问题已经有最佳答案,请猛点这里访问. 我在java中使用过String,StringBuilder和StringBuffer. 我想到了这个问题,而我从效率的角度思考. 字符串连接中的"+ ...

  3. python字符串的内部函数_「Python」字符串操作内置函数

    目录: capitalize casefold center count encode decode endswith expandtabs find format format_map index ...

  4. python 逗号赋值_python中字符串赋值 逗号_四、python字符串

    4.1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最大值.最小值)都适用于字符串. 字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的. 4.2.设置字符串的格式 ...

  5. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  6. java将表情字符串转表情符号_使用java将字符串中的表情符号替换为字符串

    如何从字符串中删除表情符号我的简单代码是.. public static void main(String[] args) throws SQLException { String str=" ...

  7. Java中什么是字符串的拷贝_关于java中字符串对象的拷贝

    1两种数据类型 java中有两种数据类型: 基本数据类型 引用数据类型 基本数据类型有整型.浮点型的数字常量和字符常量,而类是引用数据类型,所谓引用就是一个对象等于另外一个对象时(前提同一类),都使用 ...

  8. python比较两个字符串相似度_详解Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  9. python字符串切片用法_详解Python字符串切片

    在python中,我们定义好一个字符串,如下所示. 在python中定义个字符串然后把它赋值给一个变量. 我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始(==,我自己都觉得写的好脑残了 ...

  10. mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串

    题目链接: https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string 难度:中等 通过率:35.6% 题目描述: ...

最新文章

  1. mui 微信支付 与springMVC服务器交互
  2. ui培训教程分享:平面设计怎样视觉空间感?
  3. s.assign()用法c++_assign是什么意思
  4. Spring手动回滚事务
  5. docker yum 安装
  6. java面向对象的理解_java胜于C语言,却又静态面向对象,简单?
  7. vs2008安装_Visual Studio2008安装教程
  8. centos 网卡名称修改
  9. iOS 合并静态库出现 can't move temporary file错误
  10. 都说 VR 开发坑太多,结果华为云 5G Cloud VR 放了个大招儿!
  11. IDEA使用lombok时warn:Generating equals/hashCode implementation but without a call to superclass
  12. 阿里图标库运用于项目---实例
  13. 秀球技:倒和其他无用
  14. IIS无法启动计算机上的服务W3SVC如何修复、万维网发布服务(w3svc)已停止解决办法
  15. [11g](ALTER SYSTEM SUSPEND)Suspending and Resuming a Database
  16. 最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程)
  17. 可以旅游了_原水_新浪博客
  18. Python之判断一个数是否为素数
  19. Web-html、css、JavaScript_02
  20. 怎么把ubuntu系统从英文修改为中文界面

热门文章

  1. P3402-[模板]可持久化并查集【主席树】
  2. jzoj3771-小Z的烦恼【高精度,数学】
  3. jzoj5354-导弹拦截【dp,最大匹配,最少路径覆盖】
  4. POJ2406-Power Strings【KMP】
  5. 【离散化】【差分】幻灯片(jzoj 1609)
  6. Nacos(五)之Spring集成
  7. Hadoop生态hive(五)Hive QL数据库
  8. Java 0xffffffff隐式类型转换的坑
  9. Java多线程神器:join使用及原理
  10. 【Python】有效资源爬取并集