栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Set集合详讲(Set,HashSet,TreeSet)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Set集合详讲(Set,HashSet,TreeSet)

Set
    Set特点

无序,无下表,不能重复(当我们new 一个HashSet实例时, 其实底层是新创建了一个HashMap实例。 放入HashSet中的集合元素实际上由HashMap的key来保存,而HashMap的value则存储了一个PRESENT,它是一个静态的Object对象。)

    Set创建

这里是用字符串来添加,如果是类的话,就先创建对象,然后将对象添加到set里面,方法是一致的。

Set set=new HashSet<>();//如果是对类进行操作 就需要将String换成类名
    Set添加元素
set.add("java");
set.add("python");
set.add("C++");
set.add("python");

输出结果为python C++ java (无序和不能重复)

    Set遍历元素 4.1 for-each遍历
for(String st:set){
	System.out.println(st);	
}
 4.2 使用迭代器 Iterator
Iterator it=set.iterator();
while(it.hasNext){
	System.out.println(it.next());
}
    Set判断
set.contains("java");//元素是否存在
set.isEmpty();//集合是否为空
HashSet
    特点 1 存储结构:哈希表(数组+链表+红黑树)
    2 允许有null值
    3 基于HashCode计算元素存放位置。
    4 当存入元素的HashCode相同时,会调用equals进行确认,若结果为true,就拒绝后者存入。
    5 HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。 操作 因为是set的实现类,其创建,添加,删除,遍历和set是一样的
TreeSet(红黑树)
    特点

基于排序顺序实现元素不重复。
实现了SortedSet接口,对集合元素自动排序
元素对象的类型必须实现Comparable接口,指定排序规则
通过CompareTo方法确定是否为重复元素
2. ## 操作
其对字符串的操作和set是一样的
但在对类进行添加操作时,类必须实现Comparable接口,

implement Comparable

重写CompareTo方法

@Override
public int CompareTo(Person o){
	int n1=this.getid().compareTo(0.getid());//先比较id
	int n2=this.age-0.getAge();//然后比较两个人的年龄
return 	n1==0?n2:n1;//如果id相同,就按两个人的年龄进行比较
}
    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/705273.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号