ArrayUtil

开发者博客:http://www.developsearch.com

/**
 * 数组 工具类
 * 
 * @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;
    }


}

猜你喜欢

转载自keepwork.iteye.com/blog/1539848