我定义了一个List<entity>,entity中有个字段,我想更具这个字段来把整个list排序,请问如何实现?

解决方案 »

  1.   

    entity这个类实现compareable接口
      

  2.   

    可以考虑如下方法。List<Entity> list = ...;
    Collections.sort(list, new Comparator<Entity>(){
        public int compare(Entity e1, Entity e2) {
            //填写Entity比较的代码,相等返回0,大于返回1,小于返回-1.
            return 0;
        }
    });
      

  3.   

    把楼上的伪代码实现下import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;class Entity {
    private final Integer code;

    public Entity(Integer code){
    this.code = code;
    }

    public Integer getCode() {
    return code;
    }
    }public class CommonTest {
    @SuppressWarnings("unchecked")
    public static void main(String[] args){
    List<Entity> list = new ArrayList<Entity>();
    list.add(new Entity(3));
    list.add(new Entity(1));
    list.add(new Entity(5));

    Collections.sort(list, new Comparator<Entity>(){
    @Override
    public int compare(Entity o1, Entity o2) {
    int i = (int)o1.getCode();
    int j = (int)o2.getCode();
    if(i > j)
    return -1;//正序 return 1
    else if(i <= j)
    return 1;//正序 return -1
    return 0;
    }
    });

    for(Entity e : list){
    System.out.println(e.getCode());
    }
    }
    }
      

  4.   


    Arrays.sort(list, new MyComparator());
    class MyComparator implements Comparator<entity> { public int compare(entity1, entity2) {
    return entity1.需排序的属性- entity2.需排序的属性;
    }}
      

  5.   

    Collections里面的sort(List,Compartor)方法