Java中equals和==的区别

平时在学Android和Java语言的时候,总是碰到“equals”和“==”这两个字符,老感觉差不多;其实还是有一些区别的,今天干脆把它们彻底弄清楚。 一、java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。 引用数据类型:当

- 阅读全文 -

算法初级——返回栈中最小元素

实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 【要求】 1.pop、push、getMin操作的时间复杂度都是O(1)。 2.设计的栈类型可以使用现成的栈结构。 /* * 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 * 两种实现方式 * mystack1:如果最小栈为空,压入最小栈,再来的元素判断是否小于当前最小,如果小于当前最

- 阅读全文 -

算法初级——对数器

对数器 对数器是用来测试代码正确性的,我们在找不到合适的oj系统测试自己的代码时,可以自己写一个对数器对代码进行测试。 对数器的概念和使用 0,有一个你想要测的方法a, 1,实现一个绝对正确但是复杂度不好的方法b, 2,实现一个随机样本产生器 3,实现比对的方法 4,把方法a和方法b比对很多次来验证方法a是否正确 5,如果有一个样本使得比对出错,打印样本分析是哪个方法出错 6,当样本数量很多时比对

- 阅读全文 -

算法初级——堆排序

堆 堆分为大根堆和小根堆,大根堆就是所有的根节点都比他的子节点都要大,小根堆同理。 我们进行堆排序的时候,其实并不是真的要用到二叉树(完全二叉树),而只是借用这个形式来理解排序的过程,可以将一个数组想象成一棵树。例如i节点的父节点就是(i-1)/2,i节点的左子节点就是i*2+1,右子节点就是i*2+2。 heapInsert:将数组的0到1位置的数变成一个大根堆,然后加入2位置的数,整体是一个大

- 阅读全文 -

算法初级——荷兰国旗问题

荷兰国旗问题 给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) import java.util.Arrays; /** * @author sky *给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于

- 阅读全文 -