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;
}
}