知识点(1)
一、函数式编程
1.对象某属性的和
List<Student> students ;
int totalScore = students.stream().map(e -> e.getScore()).reduce(0, (x, y) -> x + y);
二、mysql相关
1.统计近一段时间的数据
//前一年
BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 year) and NOW()
//后一年
BETWEEN ‘2015-04-9’ DATE_ADD(‘2015-04-09’, INTERVAL 1 year)
2.计算时间天数差值
//创建时间小于三天的数据
DATEDIFF(NOW(), IFNULL(create_time,NOW())) <= 3 ]]>
3.mybatis传参
需带引号要加“#”符号, 不需带引号的,要加美元符号。
如1,函数中的1和year不能带引号。
三、算法相关
1.异或运算:相同为0,相异为1。
2.按位与运算:两位同时为1,结果为1,否则为0。 0&0=0;0&1=0;1&0=0;1&1=1。
计算汉明距离:
思路:
1).将两个给定的数进行 异或(^)运算后保存在变量a,汉明距离就是a的二进制中1的个数
2).当a不为0时,和0x01进行 按位与(&)运算,如果结果为1,则统计变量加一
3).将a右移一位,重复第02步
public int hammingDistance(int x, int y) {
int count = 0;
x = x^y;
while(x!=0)
{
if((x&0x01) == 1)
count++;
x=x>>1;
}
return count;
}