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

来源:互联网 发布:jquery 异步加载js 编辑:程序博客网 时间:2024/04/28 16:40

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<Elem> sets = new HashSet<Elem>();        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();    }}


0 0
原创粉丝点击