从品牌网站建设到网络营销策划,从策略到执行的一站式服务
我们先看一下HashSet和TreeSet在整个集合框架中的位置。他们都实现了Set接口。他们之间的区别是HashSet不能保证元素的顺序,TreeSet中的元素可以按照某个顺序排列。他们的元素都不能重复。
成都创新互联成立于2013年,先为卢龙等服务建站,卢龙等地企业,进行企业商务咨询服务。为卢龙企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
先来看一下HashSet:
public static voidmain(String[] args) {
Set
set.add("张三");
set.add("李四");
set.add("王五");
System.out.println(set);
System.out.println(set.size());
System.out.println(set.contains("张三"));
}
打印输出的顺序是是: [李四, 张三, 王五]
可以看出和存进去的顺序不一致。
我们先看一下 Set
这行代码创建了一个HashSet,构造函数如下:
publicHashSet() {
map=newHashMap<>();
}
可以看到实际上是创建了一个HashMap的对象。没错,HashSet底层就是一个HashMap.
再来看一下这行代码:set.add("张三");
public booleanadd(Ee) {
returnmap.put(e,PRESENT)==null;
}
非常的简单,就是调用了一下HashMap的put方法对元素进行插入。
这里的PERSENT是什么呢?继续顺藤摸瓜:
private static final Object PRESENT = new Object();
原来就是一个普通的Object对象前面用static final修饰说明是不可变的。
继续添加:set.add("李四");
可以看出来HashMap的key分别为”张三”,”李四”,“王五”, 因为HashSet用不到value,他们的value都是一样的指向同一个地方。继续往下看:System.out.println(set.size());
public intsize() {
returnmap.size();
}
也是调用的HashMap的size方法。
System.out.println(set.contains("张三"));
public booleancontains(Object o) {
returnmap.containsKey(o);
}
同样调用的HashMap的contains方法。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图