java里面的集合框架的set用法应该怎么做

 我来答
leeqianggg
2017-04-24 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:100%
帮助的人:33.5万
展开全部

1、Set:它是无序、不重复、该接口中的方法和Collection接口中的方法一致。

继承它的子类有HashSet和TreeSet。

  • HashSet:底层是哈希表数据结构,不同步的它保证元素的唯一性的方式。

根据元素的两个方法来完成的,一个是HashCode、一个是equals方法,只有当hashCode方法算出哈希值相同时,会再次判断两个元素的equals方法是否为true,如果是true说明两个元素相同,不存储,所以往hashSet集合中存储自定义对象时,要覆盖hashCode,equals方法,通过自定义对象具备的特有数据定义hashCode、equals的具体实现。

  • treeSet:用于给集合中的额元素按照指定的顺序进行排序,底层是二叉树结构,线程是不同步的。

它保证元素的唯一性,就是通过元素对象的比较方法返回值来确定的,如果为0,则视为两个元素时相同的元素,不存储。

treeset的两种排序方式:

1、让元素自身具备比较功能,就是强制让元素类去实现comparable接口,覆盖compareTo方法,这时元素具备的自然排序,可是如果元素自身不具备比较功能,获取具备的比较功能不是所需要的,这时排序方式就不能用了。

2、让集合自身具备比较功能,需要定义比较器,其实就实现了comparetor接口的子类对象作为参数传递给treeSet集合的构造函数,让treeSet集合一创建就具备了比较功能,该子类必须要覆盖compare方法。

dhweicheng
2016-12-12 · TA获得超过1155个赞
知道大有可为答主
回答量:3320
采纳率:55%
帮助的人:1066万
展开全部
Set<String> set = new HashSet<>();
set.add("张三");
set.add("李四");
for (String str : set) {
System.out.println(str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
samirliang
2017-02-06 · TA获得超过186个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:98万
展开全部
怎么用还是怎么做?
set用法,分为HashSet和TreeSet
Set<Long> set = new HashSet();
set.add(1L);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宝宝080124
2016-10-19
知道答主
回答量:24
采纳率:0%
帮助的人:10.1万
展开全部
set存储的是不重复的元素,怎么实现不重复,该元素自己要重写hashcode、equals方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qe2592008
2017-02-24 · TA获得超过472个赞
知道小有建树答主
回答量:188
采纳率:75%
帮助的人:58.9万
展开全部
Set集合是继承自Collection集合总接口的一种无序集合,正因为它无序,所以我们不能在它里面保存同样的多个值,即不允许重复值出现(这里正好与List集合区分,List集合是有序集合,或者叫序列,以数组或者链表实现,可以排序,有下标,因此可保存重复值)
Set集合有常用的实现方式有两种,分别是HashSet(底层哈希表实现)和TreeSet(底层树结构实现),因为TreeSet底层实现较为复杂,允许效率较慢,所以常用的就是HashSet,至于其内部的具体使用方法,查一下API一目了然。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-10-16
展开全部
java.util.HashSet 是现成的,可以参考 API 去了解具体的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式