对无顺序的map进行排序(升序)以及随机数
来源:互联网 发布:中国期刊数据库 编辑:程序博客网 时间:2024/06/07 06:43
/**
* @Title: sort @Description: 类型任务数量是否没有达到上限的适用用户,从小到大排序 @param @param
* Map<UserEntity, Long> oldMap @param @return @return String
* userId @throws
*/
public String sortMap(Map<String, Long> oldMap) {
// 对无顺序的map进行排序
ArrayList<Map.Entry<String, Long>> list = new ArrayList<Map.Entry<String, Long>>(oldMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Long>>() {
@Override
public int compare(Entry<String, Long> arg0, Entry<String, Long> arg1) {
return (int) (arg0.getValue() - arg1.getValue());
}
});
// 对有序数组进行判断,该类型任务最少的用户为多人的场合,随机分配
long lastUserTaskCount = 0;
String theSuitableUserId = "";
List<String> listSuitableUser = new ArrayList<String>();
for (int m = 0; m < list.size(); m++) {
long nowUserTaskCount = list.get(m).getValue();
if (m == 0 || lastUserTaskCount == nowUserTaskCount)
listSuitableUser.add(list.get(m).getKey());
else
break;
lastUserTaskCount = list.get(m).getValue();
}
if (listSuitableUser.size() == 1)
theSuitableUserId = listSuitableUser.get(0);
else {
Random rand = new Random();
int k = rand.nextInt(listSuitableUser.size());
theSuitableUserId = listSuitableUser.get(k);
}
return theSuitableUserId;
}
* @Title: sort @Description: 类型任务数量是否没有达到上限的适用用户,从小到大排序 @param @param
* Map<UserEntity, Long> oldMap @param @return @return String
* userId @throws
*/
public String sortMap(Map<String, Long> oldMap) {
// 对无顺序的map进行排序
ArrayList<Map.Entry<String, Long>> list = new ArrayList<Map.Entry<String, Long>>(oldMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Long>>() {
@Override
public int compare(Entry<String, Long> arg0, Entry<String, Long> arg1) {
return (int) (arg0.getValue() - arg1.getValue());
}
});
// 对有序数组进行判断,该类型任务最少的用户为多人的场合,随机分配
long lastUserTaskCount = 0;
String theSuitableUserId = "";
List<String> listSuitableUser = new ArrayList<String>();
for (int m = 0; m < list.size(); m++) {
long nowUserTaskCount = list.get(m).getValue();
if (m == 0 || lastUserTaskCount == nowUserTaskCount)
listSuitableUser.add(list.get(m).getKey());
else
break;
lastUserTaskCount = list.get(m).getValue();
}
if (listSuitableUser.size() == 1)
theSuitableUserId = listSuitableUser.get(0);
else {
Random rand = new Random();
int k = rand.nextInt(listSuitableUser.size());
theSuitableUserId = listSuitableUser.get(k);
}
return theSuitableUserId;
}
0 0
- 对无顺序的map进行排序(升序)以及随机数
- 对英文单词按照字母顺序进行排序(升序or降序)
- 对随机数进行排序
- 对随机数进行排序
- TreeMap练习:对学生对象的姓名进行升序排序
- 对数组里面的数据进行升序降序排序
- 用一个额外的栈对栈进行升序排序
- 对数组中的对象进行升序以及降序的排序方法(其中对象类型是系统类型).
- 通过js去对表格的列,根据其内容进行排序(升序或者降序)
- 【Java】按升序对栈进行排序
- 按升序对栈进行排序
- 对数组进行升序和降序排序
- 按升序对栈进行排序
- 对数据进行升序\降序排序
- 对Map进行排序
- 对map里的数据进行排序
- Java 使用TreeMap对学生对象的年龄进行升序排序。
- java 对map进行排序
- VBA异常后弹框提示
- 【Android 进阶】Dagger2 系列:入门案例一
- HNOI2001 产品加工
- FATE 完全背包 HDU
- 常见对象-统计大写,小写及数字字符的个数案例
- 对无顺序的map进行排序(升序)以及随机数
- scala与函数式编程——从范畴论看函数式编程
- php Internal Server Error 修改服务器配置文件
- Android-ListView去除拖动背景色
- iOS点击“我的”,保持登陆状态
- 解决webView无法播放视频的问题
- dp——洛谷P1437 [HNOI2004]敲砖块
- 我们为什么要尝试前后端分离
- linux下I2C驱动体系结构及在FL2440开发板上的具体实现