java不添加重复数据
2023-01-10阅读(408)
问:java 集合set类中是如何实现数据不能重复的?
- 答:通过计算HashCode实现的
- 答:用Set的contains方法判断就可以了 你试试~
- 答:Set 有个 add 方法是将元素添加到 Set 中,以 HashSet 为例。
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
可以看到,HashSet 底层的数据结构是一个HashMap<E,Object> ,将 e 作为 HashMap 的 key 保存的。而 HashMap 的底层数据结构是 HashTable ,根据 HashMap 的 key 的HashCode 去 HashTable (具体实现是数组+链表) 里找到元素的位置。如果同一个对象(使用equals 来比较两个对象是否相同,具体是比较对象的 hashCode() 是否相同) 往Set 里放,最终放到 HashTable 的位置是相同的。具体判断Set 是否包含某个对象,调用的是Set的contains(Object o) 方法,它内部也是通过计算 o 的hashCode 去查找该元素是否存在的。
如果题主是新学习Java的同学,建议重点学习一下常用集合的数据结构,对于掌握Java这门语言非常有帮助。 - 答:通过计算HashCode实现的
- 答:set可以过滤在其他集合中的元素,从而得到一个不重复的集合。
- 答:set 接口得到的就是不重复的数据,如果你插入了相同的会抛出异常的
问:在JAVA连接的数据库中插入数据时如何避免重复信息~
- 答:很简单,在插入数据库之前,先查询一下信息在数据库中是否存在。
如数据表(User)字段有:
id
name
age
即将插入一条信息【1,“名字”,22】
在插入数据之前,先
select
count(*)
from
User
where
id=1
and
name='名字'
and
age=22
假若查询出来不为0,那么数据就重复了。
根据这条线,很容易写出完整代码了。 - 答:给你要避免重复的字段建立唯一性约束,到时候java里捕获异常就可以了
问:JAVA如何不重复写入数据库?
- 答:在save前,你应该的先find数据库一遍,把查到的数据存入List
里面,然后你在遍历这个List,看fatigueInfo.getDriver
=
a.getDriver()
如果等于,就代表数据已经有相同的值,else就不重复 - 答:id
是自增的
本身就是不可重复的
insert
into
table
value(default,'lee',88);
id
系统给定自增
就是唯一的数据