基于机器学习对分类筛选的脑补

进行筛选

1.@overrider

1
2
3
4
@Override
public boolean equals(Object obj) {
return this.k.equals(((Line)obj).k) && this.b.equals(((Line)obj).b);
}

2.比较器

Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而后者在一个独立的类中实现比较。
像Integer、String等这些基本类型的Java封装类都已经实现了Comparable接口,这些类对象本身就支持自比较,直接调用Collections.sort()就可以对集合中元素的排序,无需自己去实现Comparable接口。

其实原理是一样的,就是用相应的特征什么的筛选出来,目前我知道的可能就是多个数和字符的对比,利用==放入这个函数

用多个动态数组,集合,放置这些被筛选的元素

注意:一定是动态,因为如果不是动态,我们哪知道一共有多少需要

搭配前面的比较,set可以根据某种规则去重,还有普通的arraylist.add

IdentityHashMap

日期类

根据日期,来在归类后进行一定的排序,方便查找

这里可以用时间模式类来实现

1
2
3
4
5
6
7
8
9
public class Main {
public static void main(String[] args) throws ParseException {
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
Date date1=s.parse("1921-7-23");
Date date2=s.parse("2020-7-1");
int a=(int)((date2.getTime()-date1.getTime())/(1000*60));
System.out.println(a);
}
}

或者就是普通的加减法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//例:1979.12.15-2015.3.2

public class Date {
static int days(int year1, int month1, int day1, int year2, int month2, int day2) {
return getdays(year2, month2, day2) - getdays(year1, month1, day1);
}

// 传入的日期与基点日期之间的天数
static int getdays(int year, int month, int day) {
int sum = 0;
int[] dayOfMonth = new int[] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (isLeapYear(year)) {
dayOfMonth[2]++;
}
for (int i = 1; i < year; i++) {
sum += 365;
if (isLeapYear(i)) {
sum++;
}
}
for (int i = 1; i < month; i++) {
sum += dayOfMonth[i];
}
sum += day;
return sum;
}

static boolean isLeapYear(int year) {
boolean tag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
tag = true;
}
return tag;
}

public static void main(String[] args) {
System.out.println(days(1979, 12, 15, 2015, 3, 2));
}

}

其他

根据一些图像识别封装类来实现具体的归类,这个我没用过。

甚至可以通过数据库的一些联动(mabatis什么的)

权限问题可以设置一个属性,然后放在数据库里面操作例如直接用guest,host这种权限,或者直接用key来写(1,2,3)

然后利用可视化的东西来提高相册颜值

比如标签分类

image-20220419150343825

地点分类

image-20220419150406129