求一个java数据结构。可以实现里面放入的值不重复,而且可以方便的查找到是否有某个值。请说的详细点。

时间:2022-06-04 14:42:17
求一个java数据结构。可以实现里面放入的值不重复,而且可以方便的查找到是否存在某个值。

多谢各位了。

请顺便留下使用方法。

18 个解决方案

#1


你说的是map吗

#2


随便说一下,用一个Vector, 然后你写的那个add方法加一个判断就ok

#3


用Set就可以了,HashSet或者TreeSet。现成的啊。

#4


map好一点

#5


循环判断,然后就可以了。

#6


用Set好一些

#7


HashSet和LinkedHashSet保存的值都不允许重复,LinkedHashSet拥有HashSet的查询速度,且是有次序的(按插入的次序).常用方法:add添加元素,contains判断某元素是否在集合中.

#8


HashSet如果不判断元素是否在集合中,直接插入2个相同的对象。报什么错呢?

#9


HashSet是根据对象的HashCode来判断是否相等,所以不用你做判断,如果在插入对象时发现已经有一个和它相等的了,就返回已插入的对象,什么都不做。

#10


HashSet赞同

#11


那如何便利HashSet,输出该集合中所有的值呢?

#12


to flyforlove(为情飞) 

怎么可能用hashCode来判断是否相等呢?
add方法不是返回一个boolean吗?

#13


用SET类.SET本身就不允许相同的值

#14


Set的遍历只能用Iterator
你会发现Set接口和Collection接口是一模一样,只有注释不一样!

#15


Set的遍历只能用Iterator。有没有例子阿?帮忙贴一个。

#16


Set set;
for(Iterator it=set.iterator();it.hasNext();){
    Object ele=it.next();
    //
}

#17


to treeroot(旗鲁特) 

HashSet其实内部用的是HashMap,HashSet中的每一个对象,其实就是HashMap中的一个Key,所以其实它是根据HashCode来判断是否相等的。

对不起,我说错了一点,就是当添加一个对象时,如果已有相等的对象的话,HashMap中的put方法会返回原有对象,而HashSet中add方法是通过HashMap中的put方法的返回值是否等于null来返回一个布尔值。

#18


多谢。。。

#1


你说的是map吗

#2


随便说一下,用一个Vector, 然后你写的那个add方法加一个判断就ok

#3


用Set就可以了,HashSet或者TreeSet。现成的啊。

#4


map好一点

#5


循环判断,然后就可以了。

#6


用Set好一些

#7


HashSet和LinkedHashSet保存的值都不允许重复,LinkedHashSet拥有HashSet的查询速度,且是有次序的(按插入的次序).常用方法:add添加元素,contains判断某元素是否在集合中.

#8


HashSet如果不判断元素是否在集合中,直接插入2个相同的对象。报什么错呢?

#9


HashSet是根据对象的HashCode来判断是否相等,所以不用你做判断,如果在插入对象时发现已经有一个和它相等的了,就返回已插入的对象,什么都不做。

#10


HashSet赞同

#11


那如何便利HashSet,输出该集合中所有的值呢?

#12


to flyforlove(为情飞) 

怎么可能用hashCode来判断是否相等呢?
add方法不是返回一个boolean吗?

#13


用SET类.SET本身就不允许相同的值

#14


Set的遍历只能用Iterator
你会发现Set接口和Collection接口是一模一样,只有注释不一样!

#15


Set的遍历只能用Iterator。有没有例子阿?帮忙贴一个。

#16


Set set;
for(Iterator it=set.iterator();it.hasNext();){
    Object ele=it.next();
    //
}

#17


to treeroot(旗鲁特) 

HashSet其实内部用的是HashMap,HashSet中的每一个对象,其实就是HashMap中的一个Key,所以其实它是根据HashCode来判断是否相等的。

对不起,我说错了一点,就是当添加一个对象时,如果已有相等的对象的话,HashMap中的put方法会返回原有对象,而HashSet中add方法是通过HashMap中的put方法的返回值是否等于null来返回一个布尔值。

#18


多谢。。。