最代码官方
2014-07-11 18:55:46
证
java随机从数组中取出指定数目的值
最近开发中,需要随机从好友列表取出指定数字的好友,然后推荐给用户关注,在网上找到了类似的算法,给大家分享下:
package com.zuidaima.util.random; import java.util.Random; public class TestRandomArray { public static void main(String[] args) { String[] ids = new String[] { "zuidaima.com", "javaniu.com", "zuidaima", "最代码", "java牛", "netbeans", "eclipse", "jsp", "jstl", "javaniu", "jgroups", "java", "spring", "freemarker", "hibernate", "struts" }; Random r = new Random(); String strarray[] = new String[5]; int index = 0; for (int i = 0; i < 5; i++) { // 刚开始从数组中随机抽取一个 // 而后将抽取的元素后面的元素向前推进到随机的位置[index位置] // 随着循环的继续,逐渐抛弃后面的元素 index = r.nextInt(ids.length - i); strarray[i] = ids[index]; // 元素向前推进到随机[index]的位置 for (int j = index; j < ids.length - i - 1; j++) { ids[j] = ids[j + 1]; } } for (String str : strarray) { System.out.print(str + " "); } } }
运行如下图:
第二种算法:
public static void r2() { List<String> ids = new ArrayList<String>(); ids.add("zuidaima.com"); ids.add("zuidaima"); ids.add("最代码"); ids.add("javaniu"); ids.add("javaniu.com"); ids.add("www.zuidaima.com"); Random r = new Random(); List<String> ret = new ArrayList<String>(); int index = 0; for (int i = 0; i < 3; i++) { index = r.nextInt(ids.size() - i); ret.add(ids.get(index)); ids.remove(index); } for (String str : ret) { System.out.print(str + " "); } }
借助java的list数据结构来实现!
猜你喜欢
请下载代码后再发表评论



wuziayng1232 LV10
2023年4月7日
浪里格朗 LV4
2023年1月31日
林间听风 LV10
2022年4月24日
JiangYing009 LV8
2022年3月24日
huaua7676 LV30
2021年7月20日
石狮第一帅 LV1
2021年6月3日
surprise LV1
2020年12月7日
a1604914398 LV3
2020年8月17日
szy2503 LV2
2020年8月10日
李哥哥
2020年7月18日
暂无贡献等级