java如何保证数据不重复
2023-01-10阅读(187)
问:java如何生成12位永远不重复的数字
- 答:Calendar calendar = Calendar.getInstance();
System.out.println("现在:"+calendar.getTime().getTime());
calendar.add(Calendar.YEAR, 10);
System.out.println("10年后:"+calendar.getTime().getTime());
时间戳高并发还是会有重复的,你应该每获取一次加1的方法生成。用锁对象或者把方法声明为synchronized保证并发也不会重复。如果有用数据库,也可以用数据库提供的sequence来帮你生成。
扩展资料:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类;
通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
参考资料来源;
问:JAVA中怎样实现数组中随机数不重复
- 答:可以参考下面的代码:
public static void main(String[] args) {
int s = -1;
int a[] = new int[100];
int i = 0;
while (i < 100) {
s = (int) (Math.random() * 100 + 1);
for (int j = 0; j < 100; j++) {
if (a[j] == s) {
break;
} else if (j == i) {
a[i] = s;
i++;
break;
}
}
}
}
扩展资料:
java参考函数
max(x,y) 返回 x 和 y 之间较大的数
min(x,y) 返回 x 和 y 之间较小的数
pow(x,y) 返回 y^x 的值
random() 返回位于 0 到 1 之间的随机函数
round(x) 四舍五进后与整
sin(x) 返回数字的正弦值
sqrt(x) 返回数字的平方根
tan(x) 返回一个角度的正切值
toSource() 显示对象的流代码
valueOf() 返回数教对象的本初值
参考资料来源:
问:java 集合set类中是如何实现数据不能重复的?
- 答:set 接口得到的就是不重复的数据,如果你插入了相同的会抛出异常的
- 答: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这门语言非常有帮助。 - 答:set可以过滤在其他集合中的元素,从而得到一个不重复的集合。
- 答:通过计算HashCode实现的
- 答:用Set的contains方法判断就可以了 你试试~
- 答:通过计算HashCode实现的