hashmap-Hashmap cotainskey 结果有问题

问题描述

Hashmap cotainskey 结果有问题

package Hashmap;

import java.util.*;

public class HashMapDemo {
public static void main(String args[]) {
// create hash map
HashMap> TT = new HashMap<>();
ArrayList gIds = null;
Test t1=new Test(0, 1, 0, 0, 0);
Test t2=new Test(0, 1, 0, 0, 0);
TT.put(t1, gIds);

   if (!TT.containsKey(t2)) {
        System.out.println("不含");
    } else {
        gIds = TT.get(t2);
        System.out.println("找到");
    }

}

}
class Test{
public int a;
public int b;
public int c;
public int d;
public int e;
public Test(int a,int b,int c,int d,int e){
this.a=a;
this.b=b;
this.c=c;
this.d=d;
this.e=e;
}
}

输出的结果是不含,请问为什么,我该怎么改呢?

解决方案

需要重写equals,否则比较的是引用,不是你的属性。

解决方案二:

需要,因为你的Key是Test类型的。

时间: 2024-08-29 03:05:13

hashmap-Hashmap cotainskey 结果有问题的相关文章

javascript hashmap:HashMap的JavaScript实现

function hashMap(){/*** Map大小*/var size = 0;/*** 容器默认最大长度*/var length = 256var loadfactor = 0.75;/*** 质数*/var prime = 1000000;/*** 对象*/var table = new Array(length);/*** 设置构建Hash质数* @param {Object} p*/this.setPrime = function(p){this.prime = p;}/***

Java基础-18总结Map,HashMap,HashMap与Hashtable区别,Collections工具类

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:Map(掌握) (1)将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.  (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重复.夫妻对

[Java] TreeMap、HashMap、LindedHashMap的区别

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! Map家族的继承关系 1 . TreeMap TreeMap实现SortMap接口,能够把它保存的记录根据键排序, 默认是按键值的升序排序(自然顺序),也可以指定排序的比较器( Comparator ),当用Iterator 遍历TreeMap时,得到的记录是排过序的. 注意,此实现不是同步的.如果多个线程同时访问一个映射,则其必须 外部同步.这一般是通过对自然封装该映射的对象执行同步操作来完成的.如果不存在这样的对象,则应该使用 Collec

从代码层读懂Java HashMap的实现原理

概述 Hashmap继承于AbstractMap,实现了Map.Cloneable.Java.io.Serializable接口.它的key.value都可以为null,映射不是有序的.Hashmap不是同步的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap. Map map = Collections.synchronizedMap(new HashMap()); HashMap 中两个重要的参数:"初始容

JAVA HashMap详细介绍和示例_java

第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.Serializable接口.HashMap 的实现不是同步的,这意味着它不是线程安全的.它的key.value都可以为null.此外,HashMap中的映射不是有序的.HashMap 的实例有两个参数影响其性能:"初始容量" 和 "加载因子".容量

java求几个hashmap中key的并集,输出value

问题描述 java求几个hashmap中key的并集,输出value 现有几个hashmap,可能有相同的key,但是value不同,求key的并集, 并输出在不同hashmap中的不同value,若不存在则为-1 比如hashmap1{(我,1),(你,2),(他,3),(它,4)} hashmap2{(猴,1)(狗,3)(你,4)(他,5)} hashmap3{(猴,10)(牛,2)(狗,5)(猪,4),(它,8)} hashmap4{(我,5),(牛,6)} 输出为 key hashmap

HashMap源码分析(jdk1.8)

HashMap源码前前后后看了好几次,也和同事分享过好几次,每次都有新的收获. 分享也是一种提高! 本文首写于个人云笔记(点击访问),经多次修改,短期内不会有重大修改了,现发于此,有任何问题欢迎交流指正.     本文最初借鉴于http://www.cnblogs.com/hzmark/archive/2012/12/24/HashMap.html,其基于jdk1.6,自己分析jdk1.8后,发现有很大的不同,遂记录于此.     Java最基本的数据结构有数组和链表.数组的特点是空间连续(大小

HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整.HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合.collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口.它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它

[Java] HashMap和HashTable的区别

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! HashTable Hashtable继承于Dictionary字典,实现Map接口 键.值都不能是空对象 多次访问,映射元素的顺序相同 线程安全 hash算法 ,Hashtable则直接利用key本身的hash码来做验证 数据遍历的方式 Iterator (支持fast-fail)和 Enumeration (不支持fast-fail) 缺省初始长度为11,内部都为抽象方法,需要 它的实现类一一作自己的实现 备注:程序在对 collectio

hashmap的C++实现

hashmap的C++实现 按照hashmap的基本原理用C++实现了简单的基本功能,复杂的实现参考C++库的源码,C++最新的标准库里已经有以下四种基于hashtable的容器: unordered_set (C++11) unordered_multiset (C++11) unordered_map (C++11) unordered_multimap (C++11).具体参考:http://en.cppreference.com/w/ /* * HashMap.h * Author: l