现在的位置: 首页 > 编程技术 > Java > 正文

打乱ArrayList生成一个随机序列的序列

2015年12月03日 Java ⁄ 共 565字 ⁄ 字号 评论 1 条 ⁄ 阅读 1191 次

做试卷的时候,需要将一个句子中的单词、一个单词中的字符、选择题中的答题项打乱生成一个随机的序列,特将其抽象成工具类,方便复用。

public static <V> boolean isEmpty(ArrayList<V> sourceList) {
    return (sourceList == null || sourceList.size() == 0);
}

/**
 * 打乱ArrayList
 * 
 * */
public static <V> ArrayList<V> randomList(ArrayList<V> sourceList){
	if (isEmpty(sourceList)) {
        return sourceList;
    }
	
	ArrayList<V> randomList = new ArrayList<V>( sourceList.size( ) );
	do{
		int randomIndex = Math.abs( new Random( ).nextInt( sourceList.size() ) );
    	randomList.add( sourceList.remove( randomIndex ) );
	}while( sourceList.size( ) > 0 );
	
	return randomList;
}

PS:经简书上一位朋友的提醒,可以通过Collections.shuffle(List<?> list)达到同样的效果。

目前有 1 条留言    访客:1 条, 博主:0 条

  1. 好文章 2016年01月26日 下午3:19  Δ-9楼

    关注一下