数据规范处理 数据口径统一 Boolean字段,在数据中有使用1/0/-1标识的,也有使用true/false表示的,统一为Y/N/U 字符串类型字段,在数据中有空串 ,有null值 ,统一为null值 日期格式统一, 2020/9/2 2020-9-2 2020-09-02 20200902 都统一成 yyyy-MM-dd 小数类型,统一成decimal 字符串,统一成string 时间戳,统一成bigint。。。理解 ,,,,简化
时间: 2023-07-15 09:12:51 浏览: 77
这是一个数据规范化的过程,目的是为了让不同来源的数据可以在同一个系统中进行统一处理和管理。具体的处理方法如下:
1. Boolean字段统一为Y/N/U字符串类型,其中Y表示true,N表示false,U表示未知或未设置。
2. 数据中使用1/0/-1标识的Boolean字段,需要转换为字符串类型。1表示Y,0表示N,-1表示U。
3. 空串和null值都统一为null值,方便数据的处理和比较。
4. 日期格式统一为yyyy-MM-dd,方便日期的比较和计算。如果数据中有其他格式的日期,需要进行转换。
5. 小数类型统一为decimal,这样可以避免精度问题。
6. 字符串类型统一为string,方便数据的处理和管理。
7. 时间戳统一为bigint,这样可以避免精度问题,并方便时间的比较和排序。
以上是数据规范化的一些常见处理方法,可以根据具体情况进行适当的调整。
相关问题
java判断list对象中的id字段是否有重复数据,重复返回1,不重复返回0
可以使用HashSet来判断是否有重复id,具体实现如下:
```java
public static int hasDuplicate(List<MyObject> list) {
Set<Integer> set = new HashSet<>();
for (MyObject obj : list) {
if (!set.add(obj.getId())) {
return 1; // id重复
}
}
return 0; // id不重复
}
```
其中,MyObject是自定义的类,包含了id属性。set.add(obj.getId())会返回一个boolean值,表示是否添加成功,如果添加失败说明该id已经在set中存在,即重复。
Java8中对list中的数据使用false或者true排序
可以使用Java8的Stream API和lambda表达式来对List中的数据使用false或者true排序。假设我们有一个包含Boolean类型的List,我们可以使用以下代码来对其进行排序:
```
List<Boolean> list = ... // 待排序的列表
List<Boolean> sortedList = list.stream()
.sorted(Comparator.comparing(Boolean::booleanValue))
.collect(Collectors.toList());
```
在上面的代码中,我们使用了Java 8的Stream API中的sorted方法来对List进行排序。我们通过提供一个Comparator<Boolean>来指定排序规则,其中我们使用了Boolean的booleanValue方法来获取Boolean对象的boolean值。这样就可以将false排在true的前面了。
需要注意的是,如果我们的List中包含null值,那么在使用booleanValue方法时会抛出NullPointerException。因此,如果我们的List中可能包含null值,需要在Comparator中进行特殊处理。比如可以使用以下代码:
```
List<Boolean> sortedList = list.stream()
.sorted(Comparator.nullsFirst(Comparator.comparing(Boolean::booleanValue)))
.collect(Collectors.toList());
```
在上面的代码中,我们使用了Java 8的Comparator的nullsFirst方法来将null值排在前面。这样就可以安全地对包含null值的List进行排序了。