在ArrayList中,放的是结构体;
结构体里比如有3个值,姓名,性别,年龄;
现在想根据结构体中的姓名进行排序;
怎么写代码

解决方案 »

  1.   

    http://hi.baidu.com/landor2004/blog/item/d58412112db26415b9127b00.html
      

  2.   

    刚刚随便写了小段代码,
    仅供参考。import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;public class UserMgr {
    private List list = new ArrayList();

    public void sort()
    {
    Collections.sort(list, new NameConparator());
    }

    public static void main(String args[])
    {
    User u1 = new User("a", "d", 1);

    User u2 = new User("c", "d", 1);

    User u3 = new User("b", "d", 1);

    UserMgr mgr = new UserMgr();
    mgr.addUser(u1);
    mgr.addUser(u2);
    mgr.addUser(u3);

    mgr.sort();

    mgr.disp();
    }

    public void addUser(User u)
    {
    list.add(u);
    }

    public void disp()
    {
    for(int i = 0; i < list.size(); i++)
    System.out.println(((User)list.get(i)).getName());
    }

    class NameConparator implements Comparator
    {
    public NameConparator()
    {
    super();
    }

    public boolean equals(Object obj)
    {
    return (super.equals(obj));
    }

    public final int compare(Object obj1, Object obj2)
    {
    int ret = 0;
    User u1 = (User)obj1;
    User u2 = (User)obj2;
    String name1 = u1.getName();
    String name2 = u2.getName();
    if(name1.compareTo(name2) >= 0)
    ret = 1;
    else
    ret = -1;
    return ret;
    }
    }
    }
    class User
    {
    private String name = null;

    private String sex = null;

    private int age = -1;

    public User(String n, String s, int a)
    {
    setName(n);
    setSex(s);
    setAge(a);
    } public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public String getSex() {
    return sex;
    } public void setSex(String sex) {
    this.sex = sex;
    }
    }
      

  3.   

    用Collections.sort(List list, Comparator c)来排序,需要自己实现一个按结构体姓名排序的Comparator。