zoukankan      html  css  js  c++  java
  • 从一个数组中随机获取一些并不重复的数据

    以前都是使用以下代码来实现这种功能的:

    int[] array1 = {1,2,3,4,5,6,7,8,9,0};
    int[] array2 = new int[5];

    int i = 0;
    while(i < array2.length)
    {
      int index = (int)Math.random() * array1.length;
      int value = array1[index];
     
      if(i == 0)
      {
         array2[i] = value;
         i++;
         continue;
      }
     
      // 为了保存数据不重复,循环检查 array2 中是否有重复的数据
      for(int k = 0; k < i; k++)
      {
         if(array2[k] == value)
            continue;
         else
         {
            array2[i] = value;
            i++;
         }
      }
    }

    这种方法效率不怎么好,而且代码比较长,下面以一种更简单的方法来实现这种功能:

    int[] array1 = {1,2,3,4,5,6,7,8,9,0};
    int[] array2 = new int[5];

    int n = array1.length;
    for(int i = 0; i < array2.length; i++)
    {
     int index = (int)(Math.random() * n);

     array2[i] = array1[index];

     array1[index] = array1[n - 1];
     n--;
    }

  • 相关阅读:
    实验10 使用PBR实现策略路由
    实验9 使用route-policy控制路由
    实验8 filter-policy过滤路由
    实验7 ISIS多区域配置
    实验6 IS-IS基本配置
    MySQL复制表
    mysql数据备份
    mysql 创建用户,授权
    数据库
    mysql 修改文件记录:
  • 原文地址:https://www.cnblogs.com/kuku/p/966115.html
Copyright © 2011-2022 走看看