本文共 2374 字,大约阅读时间需要 7 分钟。
单条件排序
@SuppressWarnings("unchecked") public static void sort(Listlist, final String key, final String orderby, final boolean isnumber) { Collections.sort(list, new Comparator() { @Override public int compare(Object a, Object b) { int ret = 0; try { if (OrderByEnum.DESC.name().equalsIgnoreCase(orderby)) { // 倒序 if (isnumber) { ret = Double.valueOf(((JSONObject) b).getString(key)) .compareTo(Double.valueOf(((JSONObject) a).getString(key))); } else{ ret = ((JSONObject)b).getString(key) .compareTo(((JSONObject)a).getString(key)); } }else { // 正序 if (isnumber) { ret = Double.valueOf(((JSONObject) a).getString(key)) .compareTo(Double.valueOf(((JSONObject) b).getString(key))); }else { ret = ((JSONObject) a).getString(key) .compareTo(((JSONObject) b).getString(key)); } } } catch (Exception e) { log.error("Sort error: ", e); e.printStackTrace(); } return ret; } }); }
多条件排序
Collections.sort(staffList, new Comparator() { public int compare(StaffElement arg0, StaffElement arg1) { // 置业管家按成交套数降序排序 if (arg1.getMonthCjNumber() > arg0.getMonthCjNumber()) { return 1; } else if (arg0.getMonthCjNumber() > arg1.getMonthCjNumber()) { return -1; } else if (arg0.getMonthCjNumber() == arg1.getMonthCjNumber()) { // 如果成交套数相等的话就按照响应速度升序 if (arg0.getAnswerRate() > arg1.getAnswerRate()) { //如果响应速度等于0就拍最后面 if(arg1.getAnswerRate()==0){ return -1; } return 1; } else if (arg1.getAnswerRate() > arg0.getAnswerRate()) { //如果响应速度等于0就拍最后面 if(arg0.getAnswerRate()==0){ return 1; } return -1; } } return 0; } });
转载地址:http://kfizb.baihongyu.com/