随机函数

5 篇文章 0 订阅
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class random_function {
  // 获得随机整数(0到x,不包括x)
  public static int getRandomInteger(Integer number) {
    Random generate = new Random();
    int nextInt;
    nextInt = generate.nextInt(number);
    return nextInt;
  }

  public static String getRandomString(Integer number) {
    Random generate = new Random();
    int nextInt = generate.nextInt(number);
    String nextString;
    nextString = "" + nextInt;
    return nextString;
  }

  // 从数组中随机取出一个元素
  public static String getRandomArrayElement(String[] paramArray) {
    String elementString;
    int index = getRandomInteger(paramArray.length);
    elementString = paramArray[index];
    return elementString;
  }

  public static int getRandomArrayintElement(int[] paramArray) {
    int element;
    int index = getRandomInteger(paramArray.length);
    element = paramArray[index];
    return element;
  }

  // 从数组中随机获取元素,组成新的数组
  public static String[] getRandomArray(String[] paramArray) {
    int count = getRandomInteger(paramArray.length) + 1;
    if (paramArray.length <= count) {
      return paramArray;
    }

    String[] newArray = new String[count];
    Random random = new Random();
    int temp;
    List<Integer> list = new java.util.ArrayList<>();
    for (int i = 1; i <= count; i++) {
      temp = random.nextInt(paramArray.length);

      if (!list.contains(temp)) {
        newArray[(i - 1)] = paramArray[temp];
        list.add(temp);
      } else {
        i--;
      }
    }
    return newArray;
  }

  // 从数组中随机获取元素,组成新的数组
  public static int[] getRandomIntArray(int[] paramArray) {
    int count = getRandomInteger(paramArray.length) + 1;
    if (paramArray.length <= count) {
      return paramArray;
    }

    int[] newArray = new int[count];
    Random random = new Random();
    int temp;
    List<Integer> list = new java.util.ArrayList<>();
    for (int i = 1; i <= count; i++) {
      temp = random.nextInt(paramArray.length);

      if (!list.contains(temp)) {
        newArray[(i - 1)] = paramArray[temp];
        list.add(temp);
      } else {
        i--;
      }
    }
    return newArray;
  }

  // 从数据中随机获取指定数量的元素,组成新的数组
  public static int[] getRandomIntArray2(int[] paramArray, int count) {

    if (paramArray.length <= count) {
      return paramArray;
    }

    int[] newArray = new int[count];
    Random random = new Random();
    int temp;
    List<Integer> list = new java.util.ArrayList<>();
    for (int i = 1; i <= count; i++) {
      temp = random.nextInt(paramArray.length);

      if (!list.contains(temp)) {
        newArray[(i - 1)] = paramArray[temp];
        list.add(temp);
      } else {
        i--;
      }
    }
    return newArray;
  }

  // 从LIST中随机获取一个元素
  public static String getRandomListElement(List<Object> paramList) {
    String elementString;
    int index = getRandomInteger(paramList.size());
    elementString = String.valueOf(paramList.get(index));
    return elementString;
  }

  // 从LIST中随机获取元素,组成新的LIST
  public static List<Object> getRandomList(List<Object> paramList) {
    int count = getRandomInteger(paramList.size()) + 1;
    if (paramList.size() < count) {
      return paramList;

    } else {
      Random random = new Random();
      List<Object> tempList = new ArrayList<Object>();
      List<Object> newList = new ArrayList<Object>();
      int temp;
      for (int i = 0; i < count; i++) {
        temp = random.nextInt(paramList.size());
        if (!tempList.contains(temp)) {
          tempList.add(temp);
          newList.add(paramList.get(temp));
        } else {
          i--;
        }
      }
      return newList;
    }
  }

  // 从LIST中随机获取指定长度的元素,组成新的LIST
  public static List<Object> getRandomList2(List<Object> paramList, int count) {
    if (paramList.size() < count) {
      return paramList;
    }
    Random random = new Random();
    List<Object> tempList = new ArrayList<Object>();
    List<Object> newList = new ArrayList<Object>();
    int temp;
    for (int i = 0; i < count; i++) {
      temp = random.nextInt(paramList.size());
      if (!tempList.contains(temp)) {
        tempList.add(temp);
        newList.add(paramList.get(temp));
      } else {
        i--;
      }
    }
    return newList;
  }

  // 随机生成密码
  public static String getPassWord(Integer length) {
    // Random rand = new Random();
    StringBuilder sb = new StringBuilder();
    String strAll = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (int i = 0; i < length; i++) {
      int f = (int) (Math.random() * 62);
      sb.append(strAll.charAt(f));
    }
    String passwordString;
    passwordString = sb.toString();
    return passwordString;
  }

  // 随机生成ip
  public static String getRandomIP() {
    // ip范围
    int[][] range = {
      {607649792, 608174079}, // 36.56.0.0-36.63.255.255
      {1038614528, 1039007743}, // 61.232.0.0-61.237.255.255
      {1783627776, 1784676351}, // 106.80.0.0-106.95.255.255
      {2035023872, 2035154943}, // 121.76.0.0-121.77.255.255
      {2078801920, 2079064063}, // 123.232.0.0-123.235.255.255
      {-1950089216, -1948778497}, // 139.196.0.0-139.215.255.255
      {-1425539072, -1425014785}, // 171.8.0.0-171.15.255.255
      {-1236271104, -1235419137}, // 182.80.0.0-182.92.255.255
      {-770113536, -768606209}, // 210.25.0.0-210.47.255.255
      {-569376768, -564133889}, // 222.16.0.0-222.95.255.255
    };

    Random rdint = new Random();
    int index = rdint.nextInt(10);
    String ip;
    int ranIndex = range[index][0] + new Random().nextInt(range[index][1] - range[index][0]);

    ip = num2ip(ranIndex);
    return ip;
  }

  private static String num2ip(int ip) {
    int[] b = new int[4];
    String x;

    b[0] = (ip >> 24) & 0xff;
    b[1] = (ip >> 16) & 0xff;
    b[2] = (ip >> 8) & 0xff;
    b[3] = ip & 0xff;
    x = b[0] + "." + b[1] + "." + b[2] + "." + b[3];
    // System.out.println(x);
    return x;
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值