黑马程序员-第十五天( Set集合)
来源:互联网 发布:电脑像素画软件 编辑:程序博客网 时间:2024/05/15 23:49
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------
一,Set集合
set集合中的元素是无序(存入和取出的顺序不一定一致),元素是可以重复的。
set集合中的方法与collection的用法基本一样。
二,常见子类集合:
HashSet:底层数据结构是哈希表。线程是非同步的。保证元素唯一性的原理:判断元素的hashCode值是否相同,如果相同
还会继续判断元素的equals方法是否为true.
TreeSet:可以对set集合中的元素进行排序。底层数据结构是二叉树数据结构(当其中元素较多时,系统自动取折中值进行比较)
保证元素唯一性的依据是compareTo方法return 0;
注:排序时,当主要条件相同时,一定要判断次要条件。
三,HashSet是如何保证元素唯一性的呢(保证唯一性的依据)?
是通过元素的两个方法,hashCode()和equals(Object)来完成的,如果元素的hashCode值相同,才会判断
equals()是否为true.如果元素的hashCode值不同,不会调用equals()方法
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法
四。TreeSet排序
第一种方式:让元素自身具备比较性,元素需要实现Comparable接口,覆盖compateTo方法,称为元素自然顺序,或默认顺序。
第二种方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。在
集合初始化时,就有了比较方式。定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数
注:当两种比较方式都存在时,以比较器为主.可以使用匿名内部类来完成传递。
定义比较器?
定义一个类,实现Comparator接口,覆盖compare方法
判断TreeSet集合元素的唯一是根据compareTo和compate方法retrun 0
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------
- 黑马程序员-第十五天( Set集合)
- 【黑马程序员】集合框架(一) 第十五天
- 黑马程序员 —— JavaAPI_集合框架 (第十五天)
- 黑马程序员——>第十五天<集合框架(TreeSet-泛型)>
- 黑马程序员--Java基础学习(集合框架)第十五天
- 黑马程序员--第十五天:泛型
- 黑马程序员-集合(Set)
- 黑马程序员----基础学习第十五天
- 黑马程序员--- 学习笔记(第十五天)
- 黑马程序员-------Set集合
- 黑马程序员-------Set集合
- 黑马程序员--Set集合
- 黑马程序员-JAVASE入门(集合Set)
- 黑马程序员--集合框架(List,Set)
- 黑马程序员--集合框架(二)Set
- 黑马程序员-------集合(Set,Map)
- 黑马程序员---集合(Set)学习笔记
- 黑马程序员:集合框架Set
- HTTP协议详解
- 【静态链接】第2章---------------------目标文件(符号)
- The connection to adb is down, and a severe error has occured.
- 如何解释企业服务总线(ESB)
- RandomAccessFile
- 黑马程序员-第十五天( Set集合)
- hdu1730 nim博弈
- KMP算法详解
- 20140302培训感悟
- DataInputStream 和DataOutputStream用于操作Java的基本数据类型
- Big-endian and little-endian
- PS教程:一分钟搞定 超简单PS皮肤美白方法
- 最长回文串
- 黑马程序员-第十六天( Map集合)