打字猴:1.700445041e+09
1700445041 int randomPosition=rand.nextInt(tagCloudNum);
1700445042
1700445043 //当前元素与随机元素交换
1700445044
1700445045 String temp=tagClouds.get(i);
1700445046
1700445047 tagClouds.set(i, tagClouds.get(randomPosition));
1700445048
1700445049 tagClouds.set(randomPosition, temp);
1700445050
1700445051 }
1700445052
1700445053 }
1700445054
1700445055 先从数据库中读出标签,然后使用随机数打乱,每次都产生不同的顺序,恩,确实能让浏览者感觉到我们的标签云顺序在变化—浏览者多嘛!但是,对于乱序处理我们可以有更好的实现方式,先来修改第一版:
1700445056
1700445057 public static void main(String[]args){
1700445058
1700445059 int tagCloudNum=10;
1700445060
1700445061 List<String>tagClouds=new ArrayList<String>(tagCloudNum);
1700445062
1700445063 Random rand=new Random();
1700445064
1700445065 for(int i=0;i<tagCloudNum;i++){
1700445066
1700445067 //取得随机位置
1700445068
1700445069 int randomPosition=rand.nextInt(tagCloudNum);
1700445070
1700445071 //当前元素与随机元素交换
1700445072
1700445073 Collections.swap(tagClouds, i,randomPosition);
1700445074
1700445075 }
1700445076
1700445077 }
1700445078
1700445079 上面使用了Collections的swap方法,该方法会交换两个位置的元素值,不用我们自己写交换代码了。难道乱序到此就优化完了吗?没有,我们可以继续重构,第二版重构如下:
1700445080
1700445081 public static void main(String[]args){
1700445082
1700445083 int tagCloudNum=10;
1700445084
1700445085 List<String>tagClouds=new ArrayList<String>(tagCloudNum);
1700445086
1700445087 //打乱顺序
1700445088
1700445089 Collections.shuffe(tagClouds);
1700445090
[ 上一页 ]  [ :1.700445041e+09 ]  [ 下一页 ]