java set是否包含_java中Set容器如何检查是否内部包含指定的对象

java的set容器,容器中每次之后保存一个相同的值。每次压入新对象的时候,都会与容器中所有存在的老对象进行比较,当新对象的hashCode  与equals,与容器中已经存在的任何一个老对象相同时,就认为两个对象时相同的,就用新对象替换掉老对象

package df.util.enjoysrc.mylbh;

import df.util.type.StringUtil;

import java.lang.String;

import java.lang.System;

import java.util.HashSet;

import java.util.Set;

/**

* Created with IntelliJ IDEA.

* User: wulong

* Date: 13-12-16

* Time: 下午3:15

* To change this template use File | Settings | File Templates.

*/

public class TestJ {

class Elem {

public String key;

public int val;

public Elem(String pKey, int pVal) {

key = pKey;

val = pVal;

}

@Override

public int hashCode() {

// return val;

return 10; //hashCode与 equals同时相等时,就认为是同一个对象

}

@Override

public boolean equals(Object o) {

return (null != o)

&& StringUtil.equals(((Elem) o).key, key)

&& ((Elem) o).val == val;

}

}

private void test() {

Set sets = new HashSet();

sets.add(new Elem("key1", 12));

sets.add(new Elem("key1", 11));

System.out.print("haitag " + sets.size());

}

public static void main(String[] args) {

new TestJ().test();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值