Android:Arraylist集合排序

时间:2015-12-23 06:12:22

标签: android android-arrayadapter android-contentprovider android-contentresolver

在我的数组列表中,我有姓名和号码,但不是按字母顺序排列。我正在使用set adapter方法设置所有名称和号码。

我很困惑,在名单和数字的数组列表中使用集合排序

请问我一个想法:)

3 个答案:

答案 0 :(得分:1)

为您的联系人模型实施可比较的界面,如

public class Contact implements Comparable<Contact>

覆盖compareTo方法

public int compareTo(Fruit Contact ) 

按您想要的任何字段排序

最后使用

Arrays.sort(Contacts);

它会相应地排序

请关注this链接。

答案 1 :(得分:0)

isAsc是用于检查的布尔变量。您希望按升序或降序排序。

arraySquads是我ArrayList类型模态类的TeamModal

 if (isAsc) {
                Collections.sort(arraySquads, new Comparator<TeamModal>() {
                    @Override
                    public int compare(TeamModal emp1, TeamModal emp2) {
                        String playerName1=emp1.getNick_name());
                        String playerName2=emp2.getNick_name());
                        return playerName1.compareToIgnoreCase(
                                playerName2);
                    }
                });
            }
            else
            {
                Collections.sort(arraySquads, new Comparator<TeamModal>(){
                    public int compare(TeamModal emp1, TeamModal emp2) {
                        String playerName1=emp1.getNick_name();
                        String playerName2=emp2.getNick_name();
                        return  playerName2.compareToIgnoreCase(playerName1);
                    }
                });
            }

答案 2 :(得分:0)

我认为这会对你有所帮助:

Person p = new Person("Bruce", "Willis");
Person p1  = new Person("Tom", "Hanks");
Person p2 = new Person("Nicolas","Cage");
Person p3 = new Person("John","Travolta");

ArrayList<Person> list = new ArrayList<Person>();
list.add(p);
list.add(p1);
list.add(p2);
list.add(p3);

Collections.sort(list, new Comparator(){

    public int compare(Object o1, Object o2) {
        Person p1 = (Person) o1;
        Person p2 = (Person) o2;
       return p1.getFirstName().compareToIgnoreCase(p2.getFirstName());
    }

});

这将按字母顺序对数组列表进行排序。你得到的清单按字母顺序排列