android - 在 Android 中按字母顺序排序列表

标签 android sorting arraylist collections

我有一个要按字母顺序排序的 ArrayList。有人可以帮我吗?

我的代码是:

listProd = new ArrayList<Producer>();   

Collections.sort(listProd, new Comparator<Producer>() {
    @Override
    public int compare(Producer p1, Producer p2) {
      return p1.getLastname().compareToIgnoreCase(p2.getLastname());

    }
});

if (!checked) {
  for (Tour t : listTour) {
    listProd.addAll(t.getProducers());
  }
} else {
  listProd = service.getAllProducers();
}

最佳答案

您必须将所有内容添加到列表后进行排序:

if (!checked) {
    listProd = new ArrayList();
    for (Tour t : listTour) {
        listProd.addAll(t.getProducers());
    }
} else {
    listProd = service.getAllProducers();
}

Collections.sort(listProd, new Comparator<Producer>() {

        @Override
        public int compare(Producer p1, Producer p2) {
            return p1.getLastname().compareToIgnoreCase(p2.getLastname());

        }
 });

关于android - 在 Android 中按字母顺序排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237308/

相关文章:

java - Android Studio 没有反射(reflect)我的 xml 更改

java - 使用 compareTo() 方法对 String 数组的 ArrayList 进行排序

PHP 从数组中获取最大值

java - 将数组列表从 servlet 发送到 jsp 时显示错误

android - 想要在 Android 上的 Delphi 应用程序中保持屏幕开启

android - 如何显示对话框以确认用户希望退出 Android Activity ?

java - 如何在android上的textview上显示mac地址?

java - 为什么这个归并排序不起作用?

java - 选定的组合框值两次添加到数组列表中

java - 如何防止对象 ArrayList 中出现重复