发表于: 2017-10-22 21:22:53

1 680


今天做的事:

今天暂时把项目的内容放了一下,看了部分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!



返回列表 返回列表
评论

    分享到