博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA-初步认识-常用对象API(集合框架-Map集合-hashmap存储自定义对象)
阅读量:5313 次
发布时间:2019-06-14

本文共 937 字,大约阅读时间需要 3 分钟。

一.

把前面讲到的三个集合使用一下。

交代一下需求,学生是键,归属地是值。到底归属地是不是String,有待商榷。如果归属地比较简单,用天津,上海....这些就是字符串。如果归属地比较复杂,北京的海淀的...,建议把归属地封装成对象。为什么?归属地封装成对象以后,它里面包含着省字段,市字段,区字段.....这些字段你想单独地去获取,归属地对象自己最清楚,所以这个时候要进行封装。记住,一旦事物变复杂了,封装对象。将复杂事物简单化。如果就是简答的,那就直接字符串上,不用封装对象。

 在第一个例子中,演示的是hashmap集合。前面已经讲述了map集合,这里讨论的是map子类的集合?无论什么类型的集合,都是一个容器,对不同类型的存储元素进行各种操作。不同集合间对元素进行的操作种类大多都差不多,增,删,查...

在本例中进行取元素,可以有两种方法,要么keyset,要么。。。。先演示keyset。

set集合里面装的是键类型,

其实这里书写的方式挺奇怪的,距离来看,lisi,38和北京三个属性间在添加入集合时,书写方式比较奇怪,没看懂。

哈希是无序的,输出结果无序。

现在修改程序,对于zhaoliu这个对象,修改一下归属地,多添加一次。

输出结果如上,怎么解决。如果你认为键相同,是不是会出现值覆盖情况,它能全列是因为键不相同。如果想保证键相同,必须要提供键判断相同的依据。

哈希表结构要保证两个方法,一说hashset都明白,一说hashmap就糊涂了。既然这个键是存到了hashmap中(哈希表),它要具备hashcode和equals方法,具备它自己内容,所以在person类里面,要做一个复写动作。(集合这一块,代码貌似都是分开写的) 有人说存的是student,但是student继承了person,student里面没有任何属性,直接在person里面写就好了。现在在person类中,添加了hashcode和equals方法,再看输出结果。

上海的归属地对象,被铁岭覆盖了。

现在提个小事情,如果不写截图中注释的两句,而是截图中最后一句。它们是一个意思。

 

转载于:https://www.cnblogs.com/wsw-bk/p/8321677.html

你可能感兴趣的文章
bzoj4152[AMPPZ2014]The Captain 最短路
查看>>
Java Memory Model
查看>>
java 抓取百度根据关键词搜索域名
查看>>
(转载)zeromq使用注意点滴
查看>>
【转】人类的心理行为模式----《影响力》笔记
查看>>
hdu 4176
查看>>
poj 1426 Find The Multiple (BFS)
查看>>
Ref和Out参数的区别(转帖)
查看>>
性能学习之--loaderunner压测
查看>>
C#的闭包
查看>>
Android实现微信自己主动抢红包的程序
查看>>
从计算的本质到编程语言
查看>>
《罗辑思维》的逻辑缺陷
查看>>
IAR编译duplicate definitions for IAR报错解决办法补充版
查看>>
[转载]linux与grep
查看>>
IOS常用的第三方开发库
查看>>
在前端工作中遇到的一些常见的兼容问题
查看>>
Writing a Kernel in C++
查看>>
JavaScript: Better and Faster
查看>>
Codeforces Round #244 (Div. 2) B. Prison Transfer
查看>>