一、应用场景
在实际开发过程中,可能会经常遇到调用接口和从数据库取值等等,诸如此类的基础操作,根据业务而用不同的数据类型来存储值,为下一步遍历到页面上。在操作过程中往往会有着很多的需求,比如在展示到页面上时候,不需要展示重复的值;向数据库存储的时候首先排除掉是否这一批数据某一个字段有重复值,也例如今天自己在做项目的时候遇到的问题一般:从客户excel导入的身份证号可能会存在导入重复的问题,我知道有很多中方法可以排除,如果有1000条数据或者更大的数据,这样的话都不是我想要的效率,晚上自己想了一下 突然想起不常用的hashSet数据类型有一个非常特别的特点:
如果两个数据的对象是一致的,那么HashSet将会把这两个合并,只储存一个空间。
由此可封装判断方法如下图Demo:
完全可以实现需求,具体代码如下:
public static void main(String[] args) {
String[] array = { "南京维数","GB项目事业一部","Java工程师","张一鸣","18233252775","南京维数" };
if (cheakIsRepeat(array)) {
System.err.println("没有重复值!");
} else {
System.err.println("有重复值!");
}
}
/**
* 判断是否有重复的值
* @param array
* @return
*/
public static boolean cheakIsRepeat(String[] array) {
HashSet<String> hashSet = new HashSet<String>();
for (int i = 0; i < array.length; i++) {
hashSet.add(array[i]);
}
if (hashSet.size() == array.length) {
return true;
} else {
return false;
}
}
至此,完成业务逻辑的判断。