码迷,mamicode.com
首页 > 其他好文 > 详细

containsKey方法和

时间:2017-09-08 10:08:29      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:map集合 containskey   remove   

                 HashMap集合中containsKey方法

 

   1、 containsKey(Object key)功能介绍:如果此映射包含指定键的映射关系,则返回 true

    remove(Object key) 如果存在此键的映射关系,则将其从映射中移除 ,否则返回null。

   2、问题描述 :

--------------------创建实体类-------------------------

         public class Foods{


private int id; // 商品编号在数据库中是唯一的

private String name; // 商品名称

//保留此不带参数的构造方法

      

        public Foods()

{

}

public  Foods(int id,String name)

{

this.id = id;

this.name = name;

           

        public int getId() {

return id;

}


public void setId(int id) {

this.id = id;

}


public String getName() {

return name;

}


public void setName(String name) {

this.name = name;

}


}

----------------------new一个food对象并放入HashMap集合中---------------------------

     Foods food=new Foods(101,"二哈");  

     HashMap<Foods,int> map=new HashMap<Foods,int>();

     map.put(food,2);

-----------------------new一个和上述一样的food对象并在上述map中查询,删除food对象----

     Foods food=new Foods(101,"二哈");

      map.containsKey(food);//返回值为false;

     map.remove(food);//返回null

----------------------------原因分析------------------------------------

     虽然两个food的是相同的,但是两个food的存储地址不同,所以两个food.hashCode() 是不同的。

----------------------------处理方法--------------------------------------

   在Foods类中改写 hashCode()和 equals(Object obj);

@Override

public int hashCode() {

// TODO Auto-generated method stub

return this.getId()+this.getName().hashCode();

           //因为这里判断的标准是只要两个foods的对象的属性是相同的则认为两个foods对象是同一个对象

        

}


@Override

public boolean equals(Object obj) {

// TODO Auto-generated method stub

if(this==obj)//判断形参是不是实参的索引

{

return true;

}

if(obj instanceof Foods)//判断形参和实参是不是同一类

{

Items i = (Foods)obj;// 将形参转化成和实参为相同的类型

if(this.getId()==i.getId()&&this.getName().equals(i.getName()))

{     //比较形参和实参的属性是否相同

return true;

}

else

{

return false;

}

}

else

{

return false;

}

}

               


            

本文出自 “Map集合” 博客,请务必保留此出处http://13282956.blog.51cto.com/13272956/1963565

containsKey方法和

标签:map集合 containskey   remove   

原文地址:http://13282956.blog.51cto.com/13272956/1963565

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!