发表于: 2017-10-22 21:22:53
1 679
今天做的事:
今天暂时把项目的内容放了一下,看了部分java基础。
首先是常用的集合:
ArrayList,应该是最常用的了;
TreeSet:之前没有见过,可以保持集合内元素有序;
HashMap:键值对;
LinkedList:针对经常对中间元素进行增删所进行的设计;
HashSet:防止重复,并且能够快速找到符合的元素;
使用一个Collections.sort()的排序方法:可以把list中的string按照字母排序;
还有一些泛型的概念:
泛型很常见,在之前的日报中也有提到过,这里就不赘述了。
额外需要提到的一点:对于泛型,extends相当于extend和implement
提到排序,那么肯定是需要比较的:
如何判断对象相等,这个问题是个很重要的问题;
首先对象相等分为:引用相等性和对象相等性;
引用相等性:堆上同一对象的两个引用;
对象相等性:堆上的两个不同对象在意义上是相同的。
如果想要把两个不同的对象视为相等的,就必须覆盖过从Object继承下来的hashCode()方法与equals()方法;必须覆盖过hashCode()方法才能确保两个对象有相同的hashCode,也要确保以另一个对象为参数的equals()调用会返回true。
所以这里涉及hashCode()和equals()规定如下:
1.如果两个对象相等,则hashCode也是相等的;
2.如果两个对象有相同的hashCode,它们不一定相等,但若两个对象相等,则hashCode值一定相等;
3.所以若equals()被覆盖过,则hashCode()也必须被覆盖;
4.hashCode()的默认行为是对在heap上的对象产生独特的值;
5.equals() 的默认行为是执行==的比较,就是去测试两个引用是否是heap上的同一个对象。
ps:heap是堆的意思。
hashcode是用来缩小寻找成本,但最后还是要用equals() 才能认定是否真的找到相同的项目。
明天计划:拆后端禅道,搭开发环境以及请教师兄学习代码生成。
问题:暂无
收获:恭喜WE!
评论