package com.nuvole.util;
|
|
import org.junit.Test;
|
|
import java.util.*;
|
|
public class IdTest {
|
|
@Test
|
public void test() {
|
List<Long> list = new ArrayList<>();
|
for (int i = 0; i < 1000; i++) {
|
Long id = IdGenerator.getId();
|
System.out.println(i + ":======》" + id);
|
list.add(id);
|
}
|
for (int i = 0; i < 100000; i++) {
|
Long id = IdGenerator.getId();
|
System.out.println(i + ":======》" + id);
|
list.add(id);
|
}
|
System.out.println(cheakIsRepeat(list));
|
}
|
|
|
@Test
|
public void test1() {
|
List<Long> list = new ArrayList<>();
|
Thread thread=new Thread(new Runnable() {
|
@Override
|
public void run() {
|
for (int i = 0; i < 10000; i++) {
|
Long id = IdGenerator.getId();
|
System.out.println(i + ":======》" + id);
|
list.add(id);
|
}
|
}
|
});
|
|
|
Thread thread2=new Thread(new Runnable() {
|
@Override
|
public void run() {
|
for (int i = 0; i < 10000; i++) {
|
Long id = IdGenerator.getId();
|
System.out.println(i + ":======》" + id);
|
list.add(id);
|
}
|
}
|
});
|
|
thread.start();
|
thread2.start();
|
|
|
Map<Long,Integer> map = findRepetition(list);
|
if(map!=null){
|
for (Map.Entry<Long,Integer> entry : map.entrySet()){
|
if(entry.getValue()>1){
|
System.out.println("元素 "+entry.getKey()+" 重复出现"+entry.getValue()+"次");
|
}else{
|
}
|
}
|
}
|
}
|
|
|
private Map<Long, Integer> findRepetition(List<Long> arr){
|
try{
|
Thread.sleep(1000L);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
Map<Long, Integer> map = new HashMap<>();
|
if(arr == null || arr.size() <= 0){
|
return null;
|
}
|
for(int i = 0; i < arr.size(); i ++){
|
if(map.containsKey(arr.get(i))){
|
map.put(arr.get(i), map.get(arr.get(i))+1);
|
}else{
|
map.put(arr.get(i), 1);
|
}
|
}
|
return map;
|
}
|
|
|
public static boolean cheakIsRepeat(List<Long> list) {
|
try{
|
Thread.sleep(1000L);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
HashSet<Long> hashSet = new HashSet<Long>();
|
for (int i = 0; i < list.size(); i++) {
|
hashSet.add(list.get(i));
|
}
|
if (hashSet.size() == list.size()) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
|
}
|