java中一个简略的Collections.sort对指定的人员按先后排序方法

java中一个简单的Collections.sort对指定的人员按先后排序方法!
使用Collections.sort对查询到的list按指定的人员先后顺序进行排序:

/**
* 描述:使用Collections.sort 对list进行指定排序
* <br/>
* @author shitou
*/
public void sortByTargetName(List<ZhsjydbYXGZFItem> list){

Collections.sort(list, new Comparator<ZhsjydbYXGZFItem>(){

Map<String, Integer> map = getNameMap();

public int compare(ZhsjydbYXGZFItem o1, ZhsjydbYXGZFItem o2) {

Integer i1 = map.get(o1.getUserid());  //取不到会返回 null
Integer i2 = map.get(o2.getUserid());  //取不到会返回 null

// 取不到则表示对此人员不进行排序,赋一个高点的值(排列在后面)
if(i1 == null) i1 = 99;  
if(i2 == null) i2 = 99;

return i1 - i2;
}
});
}
    /**
     * 描述:需求进行排序的人员Map<姓名, 排序值>
     * 排序值小的排列在前面
     * <br/>
     * @author shitou
     * @return Map<String,Integer>
     */
public Map<String, Integer> getNameMap(){

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("张三", 1);
map.put("李四", 2);
map.put("王二", 3);
map.put("刘五", 4);
return map;
}


再贴另一种排序,也是使用Map :

/**
* 描述:按名字对list进行排序
* <br/>
* @author shitou
* @param list
* @param arrName 排序的名字数组
         * String []arrName = {"高孟平","杨强","胡劲松","李文云","段光","蔡葆锐"}; // 排序的数组,先后排序排列
* @return List<ZhsjydbYXGZFItem>
*/
public List<ZhsjydbYXGZFItem> sortByTargetName(List<ZhsjydbYXGZFItem> list, String[] arrName){

if(list == null || list.size() <= 0) return list;
Map<String, ZhsjydbYXGZFItem> map = new HashMap<String, ZhsjydbYXGZFItem>();

for (int i = 0; i < list.size(); i++) {

ZhsjydbYXGZFItem item = list.get(i);
if(arrName[0].equals(item.getUserid())){
map.put("A" + i, item);
}else if(arrName[1].equals(item.getUserid())){
map.put("B" + i, item);
}else if(arrName[2].equals(item.getUserid())){
map.put("C" + i, item);
}else if(arrName[3].equals(item.getUserid())){
map.put("D" + i, item);
}else if(arrName[4].equals(item.getUserid())){
map.put("E" + i, item);
}else if(arrName[5].equals(item.getUserid())){
map.put("F" + i, item);
}else{
map.put("G" + i, item);
}
}

Object []arrObj = map.keySet().toArray();
Arrays.sort(arrObj);
List<ZhsjydbYXGZFItem> resutlList = new ArrayList<ZhsjydbYXGZFItem>();

for(int i = 0; i < arrObj.length; i++){
resutlList.add(map.get(arrObj[i].toString()));
}
return resutlList;
}