第十七天 Set集合
Set 集合中的方法和Collection是一致的
1. Set集合的特点
Set集合中的存储的元素是不重复的
Set无序集合(存储和取出的顺序),没有索引
Set集合的取出方式
只有一种,迭代器
2. HashSet
无序,不重复
底层数据结构是 哈希表 桶装结构
确定元素唯一性的依据是,元素的hashCode()返回值,和equals()方法返回值
如果 对象的hashCode()返回值一样,并且equals方法返回值是真,HashSet判定是同一个元素
存储到HashSet中的自定义的对象,必须覆盖hashCode() 和 equals()方法
HashSet先调用对象的hashCode()方法,如果一致,调用对象的equals比较,如果是true,不存储
3. TreeSet
底层数据结构是二叉树
存储自定义对象的时候
JDK1.5 & JDK1.7 存储一个就出异常
JDK1.6 存储一个,不出异常,2个以上就出异常
存储在集合内的对象,进行自然排序
对象必须具备比较性
当存储的自定义对象中的排序方式,不符合要求,不能去修改原始代码
需要改变当前对象的排序方式,让我们的集合TreeSet自己具备比较性
TreeSet集合自己可以具备比较性,在new TreeSet对象的时候,构造方法中,传递一个比较器对象
这个比较器,必须实现Comparator接口,在TreeSet构造方法中,传递的参数是Comparator接口的
实现类对象
玩TreeSet,其实在玩比较器
存储的对象自己具备比较性,对象实现Comparable接口
TreeSet自己具备比较性,自定义比较器类,实现Comarator接口
4. 模拟用户登录注册,名和密码
4.1 用户可以操作的界面,用控制台来替代
菜单选项,1 登录 2 注册
4.2 选择注册
提示输入用户名,密码,确认密码
输入信息完毕后,判断密码是否一致
去存储用户信息的集合中,找用户名
找到了,注册失败,返回注册吗,提示。。。用户名已经存在
找不到,注册成功,集合中存储用户名和密码,提示,,,,注册成功
4.3 选择登陆
提示输入用户名,密码
信息输入完毕后,到集合中,查找用户名和密码
查到了,登陆成功 提示。。。登陆成功
查询不到,登陆失败 提示。。。登陆失败