1. import java.util.ArrayList;
    2. import java.util.BitSet;
    3. import java.util.List;
    4. import java.util.Random;
    5. //有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来?
    6. public class Alibaba
    7. {
    8. public static void main(String[] args)
    9. {
    10. Random random=new Random();
    11. List<Integer> list=new ArrayList<>();
    12. for(int i=0;i<10000000;i++)
    13. {
    14. int randomResult=random.nextInt(100000000);
    15. list.add(randomResult);
    16. }
    17. System.out.println("产生的随机数有");
    18. for(int i=0;i<list.size();i++)
    19. {
    20. System.out.println(list.get(i));
    21. }
    22. BitSet bitSet=new BitSet(100000000);
    23. for(int i=0;i<10000000;i++)
    24. {
    25. bitSet.set(list.get(i));
    26. }
    27. System.out.println("0~1亿不在上述随机数中有"+bitSet.cardinality());
    28. for (int i = 0; i < 100000000; i++)
    29. {
    30. if(!bitSet.get(i))
    31. {
    32. System.out.println(i);
    33. }
    34. }
    35. }
    36. }