按数值排序列表<>

Luk*_*lor 1 java sorting android list

我有一个public List<FriendProfile> friends = new ArrayList<FriendProfile>();.我通过从服务器读取信息来初始化好友列表.FriendProfile对象包含一个名为的intprivate int userPosition;

一旦朋友列表被初始化,我想通过让FriendProfile对象具有userPosition列表中索引0 的最高位置对朋友列表进行排序,然后相应地排序,索引1具有第二高userPosition...

我想我可以写一个排序算法,但我正在寻找预先编写的代码(也许JDK有一些提供的方法?)

感谢帮助!

hmj*_*mjd 6

使用Collections.sort()并指定Comparator:

Collections.sort(friends,
                 new Comparator<FriendProfile>()
                 {
                     public int compare(FriendProfile o1,
                                        FriendProfile o2)
                     {
                         if (o1.getUserPosition() ==
                                 o2.getUserPosition())
                         {
                             return 0;
                         }
                         else if (o1.getUserPosition() <
                                      o2.getUserPosition())
                         {
                             return -1;
                         }
                         return 1;
                     }
                 });
Run Code Online (Sandbox Code Playgroud)

或者FriendProfile实施Comparable<FriendProfile>.