java 分配算法
来源:互联网 发布:python 文本相似度 编辑:程序博客网 时间:2024/06/10 18:00
原文地址:http://blog.csdn.net/qq_30085577/article/details/52756715
版权声明:本文为博主原创文章,未经博主允许不得转载。
- /*
- * 随机分配
- */
- public Map<String,List<String>> allotOfRandom(List<String> users,List<String> tasks){
- Map<String,List<String>> allot=new ConcurrentHashMap<String,List<String>>(); //保存分配的信息
- if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
- for(int i=0;i<tasks.size();i++){
- int r_user=new Random().nextInt(users.size());
- if(allot.containsKey(users.get(r_user))){
- List<String> list=allot.get(users.get(r_user));
- list.add(tasks.get(i));
- allot.put(users.get(r_user), list);
- }else{
- List<String> list=new ArrayList<String>();
- list.add(tasks.get(i));
- allot.put(users.get(r_user), list);
- }
- }
- }
- return allot;
- }
- /*
- * 平均分配
- */
- public Map<String,List<String>> allotOfAverage(List<String> users,List<String> tasks){
- Map<String,List<String>> allot=new ConcurrentHashMap<String,List<String>>(); //保存分配的信息
- if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
- for(int i=0;i<tasks.size();i++){
- int j=i%users.size();
- if(allot.containsKey(users.get(j))){
- List<String> list=allot.get(users.get(j));
- list.add(tasks.get(i));
- allot.put(users.get(j), list);
- }else{
- List<String> list=new ArrayList<String>();
- list.add(tasks.get(i));
- allot.put(users.get(j), list);
- }
- }
- }
- return allot;
- }
- /*
- * 权重分配
- */
- public Map<String,List<String>> allotOfProportion(Map<String,String> users,List<String> tasks){
- Map<String,List<String>> allot=new ConcurrentHashMap<String,List<String>>(); //保存分配的信息
- if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
- int a=0;//总权重
- for(Entry<String, String> entry:users.entrySet()){
- a+=Integer.parseInt(entry.getValue());
- }
- int start=0,end=0;//起始下标 ,结束下标
- if(a>0){
- for(Entry<String, String> entry:users.entrySet()){
- List<String> allotTask=new ArrayList<String>();
- end+=Integer.parseInt(entry.getValue());//权重累计
- for(;start<tasks.size()*end/a;start++){
- allotTask.add(tasks.get(start));
- }
- allot.put(entry.getKey(),allotTask);
- }
- }
- }
- return allot;
- }
0 0
- java 分配算法
- java 分配算法
- java 分配算法
- Java 分配算法
- 排序算法--分配排序java实现 .
- Java 实现微信红包分配算法
- java实现微信红包分配算法
- 一种按权重分配的Java算法
- Java权重分配的实现算法
- Java实现红包随机分配算法
- Java内存回收机制全解(算法+内存分配)
- Java内存回收机制全解(算法+内存分配)
- Java仿实现微信红包分配算法
- 【java基础 8】垃圾收集算法及内存分配策略
- Java仿实现微信红包分配算法
- Java仿实现微信红包分配算法
- 最佳分配算法模拟
- 数据结构-算法: 分配排序
- 热门加壳工具VMProtect v3.1发布,新增内存保护,性能改进|附下载
- 获取GridView行的主键值
- 斗地主AI算法——第四章の权值定义
- Periodic String,UVa455(周期串)
- 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常
- java 分配算法
- android必修课
- 程序资料整理
- 事件总线 otto 事件接收任务 无效果原因
- SpringMVC/Ajax 支持 PUT等请求
- Queue与Topic区别
- 真无聊!男子挑战Excel的“尽头” 用了9小时36分
- JQuery 选择器
- Android系统移植与调试之------->build.prop生成过程分析