1700445020
1700445021
1700445023
编写高质量代码:改善Java程序的151个建议 建议77:使用shuffle打乱列表
1700445024
1700445025
在网站上我们经常会看到关键字云(Word Cloud)和标签云(Tag Cloud),用于表明这个关键字或标签是经常被查阅的,而且还可以看到这些标签的动态运动,每次刷新都会有不一样的关键字或标签,让浏览者觉得这个网站的访问量非常大,短短的几分钟就有这么多的搜索量。不过,这在Java中该如何实现呢?代码如下:
1700445026
1700445027
public static void main(String[]args){
1700445028
1700445029
int tagCloudNum=10;
1700445030
1700445031
List<String>tagClouds=new ArrayList<String>(tagCloudNum);
1700445032
1700445033
//初始化标签云,一般是从数据库读入,省略
1700445034
1700445035
Random rand=new Random();
1700445036
1700445037
for(int i=0;i<tagCloudNum;i++){
1700445038
1700445039
//取得随机位置
1700445040
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);
[
上一页 ]
[ :1.70044502e+09 ]
[
下一页 ]