JAVA-初步认识-常用对象API(集合框架-Map集合-hashmap存储自定义对象)

一.

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

交代一下需求,学生是键,归属地是值。到底归属地是不是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

时间: 2024-10-08 23:45:17

JAVA-初步认识-常用对象API(集合框架-Map集合-hashmap存储自定义对象)的相关文章

java集合框架--Map集合

1.Map集合的概述 Map集合是将键映射到值的对象.一个映射不能包含重复的键.每个键最多只能映射到一个值. 2.Map接口和Collection接口的不同? Map集合存储元素是成对出现的,Collection集合存储元素是单独出现的. Map集合的键是唯一的,值是可重复的. Collection集合的子接口Set是唯一的,List是可重复的. Map集合的数据结构值针对键有效,和值无关,而Collection接口的数据结构是针对元素有效. 3.Map集合示例及功能 package cn; i

JAVA-初步认识-常用对象API(集合框架-Map集合常见子类对象)

一. 说完了map集合,顺便说些小东西. map集合常用的子类: hashtable研究的就是数据结构,哈希在1.0就出来了,那是还没有table.当时,单列集合只有vector,双列集合就是hashtable.内部结构就是哈希表.是同步的.hashmap和hashtable有区别么,效率高低不再多说.下图是hashmap的API注解,是不同步的. hashtable,它不支持空键和空值.面试的时候它们之间的区别. 上面截图的体系和一个集合体系很像,就是set集合,hashset和treeset

JAVA-初步认识-常用对象API(集合框架-Map集合特点常用方法)

一. 现在重新看一下集合的构成图,左侧三分之二的部分已经全部讲述完了,还剩右侧的一个集合map. map和collection是并列的,在集合中都属于顶层接口,为什么是接口?因为是虚线.map集合很重要,现在来学习一下,使用频率很高. 学习map集合,先了解其基本特点.如果map集合和collection一样的,那就没意思了,所以map和collection有什么区别呢? collection中一次添加一个,而map中一次添加一对,同时进行. 还有其它特点么?我们发现,这里map后面是K和V,以

JAVA-初步认识-常用对象API(集合框架-Map集合-存储自定义对象)

一. 接下来想对学生进行一个排序,应该搞一搞比较方法.通过观察程序的另一部分,学生是具备比较方法的,是按照年龄排的. 现在要对键进行排序,(我是觉着谁叫键,谁叫值是无所谓的,只是位置决定的),将前面的hashmap改成treemap, 将刚才遍历采用的是keyset,现在准备采用entryset. 结果进行了排序,按年龄排的序. 如果想按姓名排序,就要搞个比较器.是有的, 存的是student,比较的是person.这个比较器,person的集合能用,student,worker的集合也能用.

java 16 -11 ArrayList存储自定义对象并增强for遍历

需求:ArrayList存储自定义对象并遍历.要求加入泛型,并用增强for遍历. A:迭代器 B:普通for     C:增强for LinkedList,Vector,Colleciton,List等存储继续练习 增强for是用来替迭代器. 1 package cn_JDK5new; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 6 7 public class ArrListDemo2 { 8 public st

Java基础知识强化之集合框架笔记45:Set集合之TreeSet存储自定义对象并遍历练习1(自然排序)

1. TreeSet存储自定义对象并遍历练习1(自然排序): (1)Student.java: 1 package cn.itcast_05; 2 3 /* 4 * 如果一个类的元素要想能够进行自然排序,就必须实现自然排序接口 5 */ 6 public class Student implements Comparable<Student> { 7 private String name; 8 private int age; 9 10 public Student() { 11 super

Java基础知识强化之集合框架笔记46:Set集合之TreeSet存储自定义对象并遍历练习2(自然排序)

1. TreeSet存储自定义对象并遍历练习2: (1)Student.java 1 package cn.itcast_06; 2 3 /* 4 * 如果一个类的元素要想能够进行自然排序,就必须实现自然排序接口 5 */ 6 public class Student implements Comparable<Student> { 7 private String name; 8 private int age; 9 10 public Student() { 11 super(); 12

Java EE中常用的四个框架

Java EE中常用的四个框架     Struts     Struts是一个基于Sun Java EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.     Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:     1.模型 (Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config

Java中的集合框架-Map

前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从本篇开始,对集合框架里的另外一部分Map作一下记录. 一,集合框架的Map接口 Map与Collection不同之处在于它是以键值对来存储数据: Map比较常用的实现类有四个:HashTable,HashMap,LinkedHashMap,TreeMap: Map的方法也可以分为四类,增删改查,大致如下: 新