当前位置: 首页 > news >正文

Java 将自己定义的对象作为HashMap的key

须要继承Map的equals函数和hashCode函数

package com.category;

import java.util.HashMap;

public class GenCategoryLevelData {

	private static HashMap<Category, Integer> categoryLevel = new HashMap<Category, Integer>();
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	}

	/**
	 * 分类
	 * @author ouyangyewei
	 *
	 */
	public static class Category {
		public long categoryId;
		public String categoryName;
		
		@Override
		public boolean equals(Object obj) {
			Category category = (Category)obj;
			return (this.categoryId==category.categoryId
					&& this.categoryName.equals(category.categoryName));
		}
		@Override
		public final int hashCode() {
            int hashCode = 17;
            hashCode = hashCode * 31 + 1;
            hashCode = hashCode * 31 + 1;
            return hashCode;
        }
		
		public Category() {
			// empty
		}
		public Category(long categoryId, String categoryName) {
			this.categoryId = categoryId;
			this.categoryName = categoryName;
		}
		public long getCategoryId() {
			return categoryId;
		}
		public void setCategoryId(long categoryId) {
			this.categoryId = categoryId;
		}
		public String getCategoryName() {
			return categoryName;
		}
		public void setCategoryName(String categoryName) {
			this.categoryName = categoryName;
		}
	}
}


相关文章:

  • SQL中declare申明变量
  • 常用命令
  • STL之容器适配器queue的实现框架
  • DNS添加/修改/查询/删除A记录
  • 大道至简 电话号码重新成为O2O新宠
  • tomcat日志catalina.out 按天分片分割
  • 【Android-视频播放】实用vitamio自定义控制条位置
  • HBase之MemStore+Flush详解
  • Pair Project 1 elevator
  • DISCUZ 学习笔记四 SEO 设置 板块 分区 导航 模板 修改浏览器标签powerbydis
  • JVM 运行时数据区域
  • JVM调优的几种策略(转)
  • JavaScript生成GUID的方法
  • 领悟得太迟
  • 关于最近WIN7系统错误711的解决办法
  • 分享一款快速APP功能测试工具
  • #Java异常处理
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS魔法堂:Absolute Positioning就这个样
  • Linux链接文件
  • React-flux杂记
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue-cli3搭建项目
  • Vue学习第二天
  • 开发基于以太坊智能合约的DApp
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 使用SAX解析XML
  • 算法---两个栈实现一个队列
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (1)虚拟机的安装与使用,linux系统安装
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读40-45)图像描述1
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net core Swagger 过滤部分Api
  • .net FrameWork简介,数组,枚举
  • .net Stream篇(六)
  • .NET 反射的使用
  • .NET 设计模式初探
  • .net 提取注释生成API文档 帮助文档
  • .NET程序员迈向卓越的必由之路
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET中使用Redis (二)
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @vue/cli 3.x+引入jQuery
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [<事务专题>]
  • [BT]BUUCTF刷题第4天(3.22)
  • [C++] 统计程序耗时
  • [C++提高编程](三):STL初识