发表于: 2017-12-31 02:31:39
1 628
今天完成的事情:
1. 学习插入算法
2. HashSet
明天计划的事情
1. 设计SQL
遇到的问题:
无
收获:
1. 学习插入算法
算法步骤
- 默认序列中的第0个元素是有序的
- 从下标为1(下标从0开始)的元素开始,取当前下标i位置处的元素a[i]保存到一个临时变量waitInsert里;
- 对前半部分有序序列的循环遍历,并与waitInsert比较,直到遇到一个比waitInsert小的元素(这里默认是从小到大排序),此时的下标为j,那么现在只要对a[j+1]进行赋值即可;
- 将待插入元素的下标 i 向后推移一个位置;
- 重复进行第2步到第4步,直到乱序序列中的元素被全部插入到有序序列中;
- 经过以上5个步骤之后,整体序列必然有序,排序完成。
2. HashSet
HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。
HashSet和HashMap的区别
*HashMap* | *HashSet* |
HashMap实现了Map接口 | HashSet实现了Set接口 |
HashMap储存键值对 | HashSet仅仅存储对象 |
使用put()方法将元素放入map中 | 使用add()方法将元素放入set中 |
HashMap中使用键对象来计算hashcode值 | HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false |
HashMap比较快,因为是使用唯一的键来获取对象 | HashSet较HashMap来说比较慢 |
任务进度:设计SQL
DOME时间:2018-2-9
评论