package net.longjin.comm.utils; import org.apache.commons.lang.StringUtils; import java.util.*; /** * 随机获取list内对象 */ public class RandomSelect { public static Map<String,String> getRandomMap( List<String> listUser, List<String> listBus){ List<String> randomPersonList = new ArrayList<>(); List<String> randomBusList = new ArrayList<>(); randomSelect(2,listUser,randomPersonList); randomSelect(1,listBus,randomBusList); Map<String,String> map = new HashMap<>(); if(randomBusList.size()>=randomPersonList.size()){ int count = randomBusList.size()/randomPersonList.size()+1; int a = 0; for(int i=0;i<count;i++){ for (String s : randomPersonList) { if(a<=randomBusList.size()-1) { if (map.containsKey(s)) { String ss = map.get(s); String b = randomBusList.get(a); map.put(s, ss + "," + b); } else { map.put(s, randomBusList.get(a)); } } a++; } } }else{ for(int i=0;i<randomBusList.size();i++){ map.put(randomPersonList.get(i),randomBusList.get(i)); } } return map; } /** * 随机获取指定的个数 * @param val 随机取得个数 * @param list 取值对象列表 */ public static void randomSelect(int val,List<String> list,List<String> lists) { if(val>=list.size()){ val=list.size(); } String[] ids = list.toArray(new String[list.size()]); Random r = new Random(); String strarray[] = new String[val]; int index = 0; for (int i = 0; i < val; i++) { index = r.nextInt(ids.length - i); strarray[i] = ids[index]; for (int j = index; j < ids.length - i - 1; j++) { ids[j] = ids[j + 1]; } } List<String> tmp = new ArrayList<>(); for (String str : strarray) { list.remove(str); tmp.add(str); } String[] tmps = tmp.toArray(new String[tmp.size()]); String tt = StringUtils.join(tmps, ","); lists.add(tt); if(list.size()>0) { randomSelect(val, list,lists); } } }
随机获取list内对象
猜你喜欢
转载自blog.csdn.net/weixin_39643007/article/details/96305316
今日推荐
周排行