ArrayUtil

[b][color=red]开发者博客:[url]http://www.developsearch.com[/url][/color][/b]

/**
* 数组 工具类
*
* @author chenxin
* @version [版本号, 2012-5-21]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class ArrayUtil {

/**
* 比较两个字符串数组,返回第一个数组与第二个数组不同的元素数组
*
* @param array1 String[] 字符串1
* @param array2 String[] 字符串2
* @return String[] 返回两个字符串数组中不同的元素数组
*/
public static String[] compare(String[] array1, String[] array2)
{
// 第一个数组为空,返回空
if ((null == array1) || (0 == array1.length))
{
return new String[0];
}

// 第二个数组为空,返回第一个数组
if ((null == array2) || (0 == array2.length))
{
return array1;
}

int index = -1;
List<String> list = new ArrayList<String>();
for (int i = 0; i < array1.length; i++)
{
index = inArray(array1[i], array2);
if (-1 == index)
{
list.add(array1[i]);
}
}

if (0 == list.size())
{
return new String[0];
}

String[] diff = new String[list.size()];
return list.toArray(diff);
}

/**
* 判断字符串是否在字符串数组中
*
* @param str String 需要判断的字符串
* @param strs String[] 被判断的字符串数组
* @return int 如果字符串不在数组中,返回-1;否则返回该元素索引
*/
public static int inArray(String str, String[] strs)
{
if ((null == str) || (null == strs))
{
return -1;
}

for (int i = 0; i < strs.length; i++)
{
if (strs[i].equals(str))
{
return i;
}
}

return -1;
}



/**
* 随机从一组内容ID数组中取出一个元素
* @param bookIDs bookIDs
* @return String
* @see [类、类#方法、类#成员]
*/
public static String getRankMember(String[] bookIDs)
{
int length = bookIDs.length;

java.util.Random r = new java.util.Random();
int x = java.lang.Math.abs(r.nextInt()) % length;

return bookIDs[x];
}

/**
* 得到随机数 <功能详细描述>
*
* @param num 随机数个数
* @param length 随机数阀值
* @return [参数说明]
*
* @return int[] [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
private static int[] randon(int num, int length)
{
boolean[] cards = new boolean[length];
for (int index = 0; index < length; index++)
{
cards[index] = false;
}
java.util.Random r = new java.util.Random();
int x;

// 随机返回下标数组
int[] result = new int[num];
for (int index = 0; index < num; index++)
{
do
{
x = java.lang.Math.abs(r.nextInt()) % length;

} while (cards[x]);

cards[x] = true;

result[index] = x;
}
return result;
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值