集合框架-Map集合-HashMap存储自定义对象

1 package cn.itcast.p6.hashmap.demo;
2
3 import java.util.HashMap;
4 import java.util.Iterator;
5 import java.util.Set;
6
7 import cn.itcast.p2.bean.Student;
8
9 public class HashMapDemo {
10
11 public static void main(String[] args) {
12 // TODO Auto-generated method stub
13 /*
14 * 将学生对象HashMap<K, V>通过键与值存储到map集合中。
15 */
16
17 HashMap<Student,String> hm = new HashMap<Student,String>();
18 hm.put(new Student("lisi",38), "北京");
19 hm.put(new Student("zhaoliu",24), "上海");
20 hm.put(new Student("xiaoqiang",31), "沈阳");
21 hm.put(new Student("wangcai",28), "大连");
22 hm.put(new Student("zhaoliu",24), "铁岭");
23
24 // Set<Student> keySet = hm.keySet();
25 //
26 // Iterator<Student> it = keySet.iterator();
27
28 Iterator<Student> it = hm.keySet().iterator();
29 while (it.hasNext()) {
30 Student key = it.next();
31 String value = hm.get(key);
32 System.out.println(key.getName()+":"+key.getAge()+"---"+value);
33 }
34 }
35
36 }
HashMapDemo

1 package cn.itcast.p2.bean;
2
3 public class Person implements Comparable<Person>{
4 private String name;
5 private int age;
6
7
8 public Person() {
9 super();
10 // TODO Auto-generated constructor stub
11 }
12
13 public Person(String name, int age) {
14 super();
15 this.name = name;
16 this.age = age;
17 }
18 public int compareTo(Person p) {//指定比较类型,传入比较类型
19 // Person p= (Person)obj;
20 int temp = this.age-p.age;
21 return temp==0?this.name.compareTo(p.name):temp;
22 }
23
24
25 @Override
26 public int hashCode() {
27 final int prime = 31;
28 int result = 1;
29 result = prime * result + age;
30 result = prime * result + ((name == null) ? 0 : name.hashCode());
31 return result;
32 }
33
34 @Override
35 public boolean equals(Object obj) {
36 if (this == obj)
37 return true;
38 if (obj == null)
39 return false;
40 if (getClass() != obj.getClass())
41 return false;
42 Person other = (Person) obj;
43 if (age != other.age)
44 return false;
45 if (name == null) {
46 if (other.name != null)
47 return false;
48 } else if (!name.equals(other.name))
49 return false;
50 return true;
51 }
52
53 // @Override
54 // public boolean equals(Object obj) {//不能把Object改为Person,equals方法来自Object,Object没有定义泛型
55 // // TODO Auto-generated method stub
56 // if (this == obj) {
57 // return true;
58 // }
59 // if (!(obj instanceof Person)) {
60 // throw new RuntimeException()
61 // }
62 // Person p = (Person)obj;
63 // return super.equals(obj);
64 // }
65 /*
66 * @Override public int hashCode() { final int prime = 31; int result = 1;
67 * result = prime * result + age; result = prime * result + ((name == null) ? 0
68 * : name.hashCode()); return result; }
69 *
70 * @Override public boolean equals(Object obj) { if (this == obj) return true;
71 * if (obj == null) return false; if (getClass() != obj.getClass()) return
72 * false; Person other = (Person) obj; if (age != other.age) return false; if
73 * (name == null) { if (other.name != null) return false; } else if
74 * (!name.equals(other.name)) return false; return true; }//alt+shift+s
75 * hashCode和equals
76 */
77 public String getName() {
78 return name;
79 }
80 public void setName(String name) {
81 this.name = name;
82 }
83 public int getAge() {
84 return age;
85 }
86 public void setAge(int age) {
87 this.age = age;
88 }
89
90 @Override
91 public String toString() {
92 return "Person:"+getName()+":"+getAge();
93 }
94
95
96 }
Person

1 package cn.itcast.p2.bean;
2
3 public class Student extends Person {
4
5 public Student() {
6 super();
7 // TODO Auto-generated constructor stub
8 }
9
10 public Student(String name, int age) {
11 super(name, age);
12 // TODO Auto-generated constructor stub
13 }
14
15 @Override
16 public String toString() {
17 // TODO Auto-generated method stub
18 return "Student:"+getName()+":"+getAge();
19 }
20
21 }
Student
集合框架-Map集合-HashMap存储自定义对象的更多相关文章
- 集合框架-Map集合
* Map集合和Collection集合的区别? * Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的.可以把这个理解为:夫妻对 * Collection集合存储元素是单独出现的, ...
- 集合框架-Map集合练习-Map查表法
1 package cn.itcast.p10.map.test; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 public c ...
- 集合框架-Map集合练习-记录字母次数思路及代码
1 package cn.itcast.p10.map.test; 2 3 import java.util.Iterator; 4 import java.util.Map; 5 import ja ...
- 集合框架-Map集合重点方法keySet演示
1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import ...
- 集合框架-Map集合特点及常用方法
1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import ...
- 集合框架-Map集合-TreeMap存储自定义对象
1 package cn.itcast.p8.treemap.demo; 2 3 4 import java.util.Iterator; 5 import java.util.Map; 6 impo ...
- 集合框架-Map集合-LinkedHashMap及关联源码操作
1 package cn.itcast.p9.linkedhashmap.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator ...
- java集合框架——Map
一.概述 1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...
- Java集合框架——Map接口
第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...
随机推荐
- JAVA发送邮件报错,返回500 Error: bad syntax问题
把项目部署在Linux系统的centos服务器,发送邮件报错了. 500 Error: bad syntax 处理办法 [root@master bin]# hostname master 显示 ma ...
- 二叉树c++实现
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist --- 欢迎指正--- 二叉树特点: 要么为空树:要么,当前结点的左孩子比当前结点值小,当前 ...
- 【LeetCode】1006. Clumsy Factorial 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 直接eval 日期 题目地址:https://lee ...
- 【剑指Offer】左旋转字符串 解题报告(Python)
[剑指Offer]左旋转字符串 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目 ...
- 【剑指Offer】第一个只出现一次的字符 解题报告(Python)
[剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【LeetCode】491. Increasing Subsequences 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- Java高级程序设计笔记 • 【第3章 多线程(二)】
全部章节 >>>> 本章目录 3.1 同步代码块 3.1 线程安全 3.1.1 模拟银行取款 3.1.2 同步代码块的使用 3.1.3 实践练习 3.2 同步方法 3.2. ...
- 大厂必问的Spring面试题
准备了一个月的八股文,经历了二十几场秋招面试之后,发现Spring很受面试官青睐.最近有空将Spring常见的面试题总结了一下,希望对大家有所帮助. 文章目录: Spring的优点 Spring 用到 ...
- JAVA获取上下行网速
JAVA获取上下行网速 package com.iecas.zwterminalstate.util;import java.io.BufferedReader;import java.io.IOEx ...
- centos6.5-nginx搭建
一.安装nginx 1.安装相关组件 yum -y install pcre-devel zlib-devel 2.创建启动用户 useradd -M -s /sbin/nologin nginx t ...