为何 Map接口不继承Collection接口
1.首先Map提供的是键值对映射(即Key和value的映射),而collection提供的是一组数据(并不是键值对映射)。
如果map继承了collection接口,那么所有实现了map接口的类到底是用map的键值对映射数据还是用collection的一组数据呢(就我们平常所用的hashMap、hashTable、treeMap等都是键值对,所以它继承collection完全没意义),而且map如果继承了collection接口的话还违反了面向对象的接口分离原则。
接口分离原则:客户端不应该依赖它不需要的接口。另一种定义是:类间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大、臃肿的接口拆分成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署,让客户端依赖的接口尽可能地小。
- Map和List、set不同,Map放的是键值对,list、set放的是一个个的对象。说到底是因为数据结构不同,数据结构不同,操作就不一样,所以接口是分开的。还是接口分离原则
相关文章:

Linux 开机网络无法自动连接配置、网络开机自动连接
第一步:查看开机后网络是否正常连接? 1、图形界面开机后直接看右上角的网络是否连接正常(如图一)。 图一(表示未正常连接↑↑↑↑↑↑↑↑↑) 2、如果是命令页面的,可以使用命令查看网络连接情况…

sql中将分隔字符串转为临时表的方法
问题: 要求将 一字符串 0,1,2,3,4,5 ;将,分隔后的每一内容转为一行记录到数据库表中declare table_串转数组 table( adapt_object int default 0) declare tmp_str varchar(100) declare tmp_index int select tmp_index 1 select tmp_str 0,1,12,03,4,5,a,…

每天学一点flash(15) xml的一些常见写法
今天下了大雨来了,什么地方去不了,只好将想写的东西都记载下来。 一些常见的一些xml写法,收集目的就是为了代码调试方便: 一.简单数组单值形 <?xml version"1.0" encoding"UTF-8"?> <i…

spark为什么比hive速度快?
spark是什么? spark是针对于大规模数据处理的统一分析引擎,通俗点说就是基于内存计算的框架 spark和hive的区别? spark的job输出结果可保存在内存中,而MapReduce的job输出结果只能保存在磁盘中,io读取速度要比内存中…

kotlin 练习
kotlin基础语法 samychen 关注 2017.05.28 17:07* 字数 1224 阅读 2434评论 0喜欢 6每种编程语言都有一定的语法、语义和执行顺序(同步),学习一种新语言也都是从这三者出发,下面我们就只针对kotlin的语法来做简单的介绍。 Kotlin有自己的特性不该被Java的…

软件设计之 数据库设计
[按语:在软件设计或是动态网站开发中,数据库设计时很重要,我觉得可以说是开发工作的核心部分,所以学好数据库设计,是很重要的,也是大有前途的。。。]◆.概念首先要搞清楚容易混淆的两个概念&…

css结构思维导图
以下的图是根据css基础,样式,框模型,定位以及选择器这几个方面总结出来的思维导图,方便记忆以及查询。 转载于:https://www.cnblogs.com/yuexiuyi/p/7352516.html

C#类的修饰符
访问修饰符:public:访问不受限制。protected:访问仅限于包含类或从包含类派生的类型。只有包含该成员的类以及继承的类可以存取.Internal:访问仅限于当前程序集。只有当前工程可以存取.protected internal:访问仅限于当前程序集或…

Appium+Python 自动化测试一之:环境安装(Android篇)
目前网上有大量AppiumPython的APP自动化测试的资料,这里我只是记录一下自己安装的过程,好让自己以后忘记的时候再翻起来看看,快速上手,不想再像之前那样踩坑。 注:因为之前玩过Robot FrameworkSelenium2,所…

sql server 2005 T-SQL @@TOTAL_READ (Transact-SQL)
返回 SQL Server 自上次启动后由 SQL Server 读取(非缓存读取)的磁盘的数目。 Transact-SQL 语法约定 语法 TOTAL_READ 返回类型 integer 备注 若要显示包含多项 SQL Server 统计信息(包括读写活动)的报表,请运行 sp_m…

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理顺序排列的,如果你想访问那个单元你可以根据提供的指针等直接访问到需要的东西,但是链表是逻辑连续不是物理连续…

[luoguP2618] 数字工程(DP)
传送门 离线处理。。。 先线性筛一遍。 直接预处理出所有答案。 注意要用push,用乘法,常数小。 #include <cstdio> #include <cstring> #define N 1000001 #define min(x, y) ((x) < (y) ? (x) : (y))int n, cnt; int f[N], prime[N]; b…

QOS的qmtoken 1
在有拥塞的时候高层协议如TCP可能自己可以控制下拥塞,因此你的队列效果可能不明显了,这个时候TCP就是,网络拥塞丢包增加,重传增加。此时可以定义波特率修改接口带宽,从而从底层截掉带宽制作拥塞或使用LR,LR…

关于SQL的基础知识点
文章目录一 了解SQL二 检索数据三 排序检索数据四 过滤数据五 高级数据过滤六 用通配符进行过滤七 创建计算字段八 使用数据处理函数九 汇总数据十 分组数据十一、 子查询十二、 联结表十三、 创建高级联结十四 组合查询十五 插入数据十六 更新和删除数据十七 创建和操纵表十八…

DB-MySQL:MySQL 事务
ylbtech-DB-MySQL:MySQL 事务1.返回顶部 1、MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息…

asp.net程序性能优化的七个方面
asp.net程序性能优化的七个方面 一、数据库操作 1、用完马上关闭数据库连接 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资 源。ASP.NET中提供了连接池(Connection Pool&a…

如何在Windows Server 2008 Core里面添加Role~~~
SERVER CORE 中添加服务器添加AD:在SERVER CORE 下安装AD必须使用UNATTEND文件来进行安装以下是一个UNATTED文件的实例; DCPROMO unattend file (automatically generated by dcpromo); Usage:; dcpromo.exe /unattend:F:\LONGHORN.txt;[DCInstall]; New forest p…

关于MySQL的四种事务隔离级别!
本文实验的测试环境:Windows 10cmdMySQL5.6.36InnoDB 一、事务的基本要素(ACID) 原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环…

[PKUWC2018]随机算法
题意:https://loj.ac/problem/2540 给定一个图(n<20),定义一个求最大独立集的随机化算法 产生一个排列,依次加入,能加入就加入 求得到最大独立集的概率 loj2540 「PKUWC 2018」随机算法 本质就是计数题 每个点有三种状态&#…

angular4 note
纪录作为新手,用新版angular遇到的一些细节点 1. .angular-cli.json文件 一开始没注意这个文件干啥的,直到我发现有个第三方js,我既没有在index.html里看到引用,也没看到在js代码里有import,找了好久,在这…

初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子
前面知道了一个汇编的赋值指令(MOV), 再了解一个加法指令(ADD), 就可以做个例子了.譬如: ADD AX,BX; 这相当于 Delphi 中的 AX : AX BX;另外提前来个列表 - Delphi 可以用汇编管理以下寄存器:32 位寄存器: EAX EBX ECX EDX ESP EBP ESI EDI16 位寄存器: AX BX CX DX SP BP SI …

通过应用程序域AppDomain加载和卸载程序集之后,如何再返回原来的主程序域
实现目的:动态加载dll,执行完毕之后可以随时卸载掉,并可以替换这些dll,以在运行中更新dll中的类。 其实就是通过应用程序域AppDomain加载和卸载程序集。 在这方面微软有篇文章http://www.microsoft.com/china/msdn/archives/libra…

Sql语法---DDL
1.SQL的定义 结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。 2.SQL的作用 通过SQL语句我们可以方便的操作数据库中的数据、表、数据库等。 3.SQL的分类 1. DDL(Data Definition Language)数据定义语言用来定义数据库对象ÿ…

Java程序员三年的工作经验,却不如一个新人的工资高???
文章目录一、关于程序员的几个阶段第一阶段:三年第二阶段:五年第三阶段:十年二、关于项目经验三、关于专业技能1、基本语法2、集合3、设计模式4、多线程5、JDK源码6、框架7、数据库8、数据结构和算法分析9、Java虚拟机10、Web方面的一些问题四…

视觉稿与H5页面之间的终端适配
移动端页面开发备注:该篇文章使用宽为750px(iPhone6的设备像素)的视觉稿编写html代码:<!DOCTYPE html><html><head> <title></title> <meta charset"utf-8" /></head><bo…

欢迎大家批评:CSDN Blog用户体验调查
CSDN Blog自2004年7月上线以来,得到了各位用户的大力支持,已经成为大家发表专业技术文章和进行技术交流的园地。为了给各位作者和读者提供更好的服务,我们组织了这次用户问卷调查,希望大家能够将意见反馈给我们。 CSDN Blog团…

几个我收藏的经典网站
壁纸酷:[url]http://www.bizhiku.net[/url],XP壁纸,vista壁纸,汽车壁纸,风景壁纸,游戏壁纸,美女桌面壁纸,3d壁纸,日历月历壁纸等等,精美桌面壁纸下载.WAP中国:[url]http://www.wapcn.net[/url],专业的手机资源网站下载,手机铃声,手机游戏,手机壁纸,手机电影,手机软件,手机主题下…

用Java求一个三位数,该三位数是与其每位数字的阶乘之和
题目:一个三位数,该三位数与其每位数字的阶乘之和 代码: public class TestSum {public static void main(String[] args) {int a, b, c, i;//for循环找那个满足条件的三位数(i)for (i 100 ; i < 999; i) {a i %…
Storm 0.9安装指南
Storm 0.9.2安装指南0 Storm0.9的亮点引用网上的描写叙述:“Storm 0.9.0.1版本号的第一亮点是引入了netty transport。Storm网络传输机制实现可插拔形式,当前包括两种方式:原来的0mq传输,以及新的netty实现。在早期版本号中&#…

WinForm 设置初始位置在屏幕右下角
base.Location new Point(Screen.PrimaryScreen.WorkingArea.Width - base.Width, Screen.PrimaryScreen.WorkingArea.Height - base.Height);转载于:https://www.cnblogs.com/RobotTech/archive/2008/01/31/1059548.html