Excel不相邻列如何打印在一起-英雄云拓展知识分享
143
2023-10-25
【摘要】 本书摘自《JAVA服务端研发知识图谱》一书中第1章,第6节,由何为、迟文恒 编著。
1.6.4 Map
Map 是通过键值对存储的,可以通过键来获取值。 HashMap 是最常用的 Map, 本节以它为 例讲解 Map 的原理和实现。 HashMap 通过散列的形式,以达到快速存取和空间控制的目的。以手机号为例,用手机号对10000取余,那么所有手机号就散列了10000个分组,分别是从0到 9999,这种散列的基础就是 hashCode 方法。散列后手机号映射到的分组值会重复,要把这些散
列后重复的数据保存到某一分组中就用到了链表,在链表中要正确地取值就需要 equals 方法作 为对象的比较依据。这就是作为 HashMap 的 Key 值的类为什么必须实现 hashCode 和 equals 这 两个方法的原因
代码如下:
public static void testHashMap({
HashMap
map.put(new Person(1,"xiaoming"),"Musician");
map.put(new Person(1,"xiaoming"),"Musician");
map.put(new Person(2,"daming"),"Scientist");
map.put(new Person(3,"xiaobai"),"Astronaut");
System.out println(map);
for(Map.Entry
System.out.println("key="+entry.getKey0+"value="+entry.getValue());
}
for(Person person:map.keySet(O)){
System.out.println(person);
for(String string:map.values()){
System.out.println(string);
}
Iterator
while (its,hasNext()){
Map.Entry
System.outprintln("key="+entry.getKey()+"value="+entry.getValue();
运行结果如下:
{id = 1 name =xiaoming=Musician, id=2 name =daming=Scientist, id=3 name =xiaobai=Astronaut}
key =id = 1 name = xiaoming value =Musician
key =id =2 name =daming value =Scientist
key =id=3 name = xiaobai value =Astronaut
id =1 name=xiaoming
id=2 name=daming
id=3 name =xiaobai
Musician
Scientist
Astronaut
key = id = 1 name = xiaoming value =Musician
key = id =2 name =daming value =Scientist
key =id=3 name = xiaobai value =Astronaut
在上面的例子中,构建了一个 HashMap,key 值是之前经常使用的 Person 类对象,当然可 以构建 key 值是基本类型包装器类的对象,具体使用什么作为 Key 需要在实际项目中进行判 断,这里仅作为演示。代码中提供了几种遍历 HashMap 的方法,包含全量遍历 HashMap、 只遍 历Key 和只遍历Value。 一些其他方法这里就不过多介绍,读者可查看相关文档进行了解。
本节已经演示了常用容器的使用方法并介绍了容器的不同特性,在实际的项目中需要根据业务 的要求和容器的特性选择合适的容器。容器性能问题一般不会对业务造成太多困扰,除非特殊的业 务逻辑, 一般都不会遇到容器性能瓶颈。
1.7 泛型
正如前面例子所写,其实泛型最常见的使用场景就是在容器内,容器提供了存储对象的通 用能力,其他所有类型的对象都可以放入容器之内,声明容器时,用具体的类型标明容器中使 用的类型即可,这就是泛型的基本使用。
1.7.1 泛型的基本使用
泛型的基本使用前面已经有所涉及,在下面的例子中将创建一个继承结构,然后用基类的类型 来声明容器,看看容器是否表现正常。并且创建一个泛型方法,观察其对类型的处理。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~