package com.nuvole.util; import org.junit.Test; import java.util.*; public class IdTest { @Test public void test() { List 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 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 map = findRepetition(list); if(map!=null){ for (Map.Entry entry : map.entrySet()){ if(entry.getValue()>1){ System.out.println("元素 "+entry.getKey()+" 重复出现"+entry.getValue()+"次"); }else{ } } } } private Map findRepetition(List arr){ try{ Thread.sleep(1000L); }catch (Exception e){ e.printStackTrace(); } Map 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 list) { try{ Thread.sleep(1000L); }catch (Exception e){ e.printStackTrace(); } HashSet hashSet = new HashSet(); for (int i = 0; i < list.size(); i++) { hashSet.add(list.get(i)); } if (hashSet.size() == list.size()) { return true; } else { return false; } } }