java中什么叫entryset
发布时间:2025-05-22 05:24:03 发布人:远客网络
一、java中什么叫entryset
1、Entry是一个键值对对象,包含一个key和一个value,他是Map接口中定义的内部接口(Map.Entry)HashMap类中的内部类Entry实现了AbstractMap.SimpleEntry,而AbstractMap.SimpleEntry实现了Map.Entry接口,
2、用null做key其实是HashMap中定义了一个NULL_KEY(ObjectNULL_KEY=newObject();其实就是个Object对象)来替代null作为key,
3、也就是说你map.put(null,value)的时候,HashMap实际上会用NULL_KEY作为key,
4、当你调用map.get(null)的时候,HashMap也会用NULL_KEY来作为key返回数据
5、如果你有兴趣的话可以看下HashMap的源码,装JDK的时候装了源码就可以到安装目录下找到src.zip包里面是javaAPI的源码,没装的话只有去下载了,
二、entry是什么意思啊了
1、entry是一个英语单词,它的意思是“条目、入口、进入”。在不同的语境中,这个词有着不同的用法和含义。例如,在一个数据库系统中,entry可以指代一条记录;在一个比赛中,entry通常指报名参赛的选手;在一个建筑物中,entry则通常指大门或者门廊。
2、在计算机科学中,entry还有着特殊的含义。它通常指一个程序的入口点,也就是程序开始执行的那个函数或过程。在许多编程语言中,程序都必须要有一个entry point,否则程序是无法执行的。在C/C++中,main就是一个典型的entry point,在Java中,静态方法main则是程序的入口函数。
3、除了以上提到的含义之外,entry还有其他有趣的用法。例如,在航空领域中,entry可以指代一个航班的起飞时间;在营销领域中,entry可以指代一个促销活动的报名渠道。不同领域中的entry也常常有着不同的缩写和组合用法,例如在IT领域中,entry point常常缩写为EP,在航空领域中,entry time则常常缩写为ETD。
三、java编程抽象类技术如何实现
1、java编程一直以来都是互联网上使用比较广泛的一种编程语言,所以我们今天就一起来了解一下java编程中的抽象类是如何来实现的,希望通过对本文的阅读,大家能够对java编程技术有更深刻的认识,下面北京电脑培训就开始今天的主要内容吧。
2、AbstractMap抽象类实现了一些简单且通用的方法,本身并不难。但在这个抽象类中有两个方法非常值得关注,keySet和values方法源码的实现可以说是教科书式的典范。
3、抽象类通常作为一种骨架实现,为各自子类实现公共的方法。上一篇我们讲解了Map接口,此篇对AbstractMap抽象类进行剖析研究。
4、Java中Map类型的数据结构有相当多,AbstractMap作为它们的骨架实现实现了Map接口部分方法,也就是说为它的子类各种Map提供了公共的方法,没有实现的方法各种Map可能有所不同。
5、抽象类不能通过new关键字直接创建抽象类的实例,但它可以有构造方法。AbstractMap提供了一个protected修饰的无参构造方法,意味着只有它的子类才能访问(当然它本身就是一个抽象类,其他类也不能直接对其实例化),也就是说只有它的子类才能调用这个无参的构造方法。
6、在Map接口中其内部定义了一个Entry接口,这个接口是Map映射的内部实现用于维护一个key-value键值对,key-value存储在这个Map.Entry中。AbstractMap对这个内部接口进行了实现,一共有两个:一个是可变的SimpleEntry和一个是不可变的SimpleImmutableEntry。
7、publicstaticclassSimpleEntryimplementsEntry,java.io.Serializable
8、实现了Map.Entry接口,并且实现了Serializable(可被序列化)。
9、它的方法比较简单都是取值存值的操作,对于key值的定义是一个final修饰意味着是一个不可变的引用。另外其setValue方法稍微特殊,存入value值返回的并不是存入的值,而是返回的以前的旧值。需要重点学习的是它重写的equals和hashCode方法。
10、publicstaticclassSimpleImmutableEntryimplementsEntry,java.io.SerializableSimpleImmutableEntry
11、定义为不可变的Entry,其实是事实不可变,因为它不提供setValue方法,在多个线程同时访问时自然不能通过setValue方法进行修改。它相比于SimpleEntry其key和value成员变量都被定义为了final类型。调用setValue方法将会抛出UnsupportedOperationException异常。
12、它的equals和hashCode方法和SimpleEntry一致。
13、接下来查看AbstractMap抽象类实现了哪些Map接口中的方法。
14、Map中定义了一个entrySet方法,返回的是Map.Entry的Set集合,直接调用Set集合的size方法即是Map的大小。
15、调用上面的size方法,等于0即为空。
16、publicbooleancontainsKey(Objectkey)
17、这个方法的实现较为简单,通过调用entrySet方法获取Set集合的迭代器遍历Map.Entry,与参数key比较。Map可以存储为null的key值,由于key=null在Map中存储比较特殊(不能计算hashCode值),所以在这里也做了判断参数key是否为空。