当前位置: 首页 > 知识库问答 >
问题:

java中ArrayList的排序ArrayList

楚俊逸
2023-03-14

我有一个ArrayList of String。

在每个索引上的外部ArrayList中,每个内部ArrayList有四个项目,有四个参数。

  1. 联系人ID
  2. 联系人姓名
  3. 联系地址
  4. 联系号码

现在,我想根据Contact Name参数对的完整ArrayList进行排序。

意味着我要访问外部Arraylist,外部Arraylist的每个索引上存在的内部Arraylist应该根据联系人名称进行排序。

比较器/可比接口不太可能帮助我。

收集我帮不上忙

排序Bean的Arraylist。我读了这篇文章,但它是为ArrayList的ArrayList


共有3个答案

苏乐童
2023-03-14
  import java.util.Collections;
  import java.util.Comparator;
  import java.util.List;


  public class ListsUtils {

      public static void sortListOfLists(List < List < String >> listOfLists) {

          // first sort the inner arrays using collections.sort
          for (List < String > innerList: listOfLists) {
              Collections.sort(innerList);
          }

          // now sort by comparing the first string of each inner list using a comparator
          Collections.sort(listOfLists, new ListOfStringsComparator());
      }

      static final class ListOfStringsComparator implements Comparator < List < String >> {

          @
          Override
          public int compare(List < String > o1, List < String > o2) {
              // do other error checks here as well... such as null. outofbounds, etc
              return o1.get(0).compareTo(o2.get(0));
          }

      }
  }

我猜我只是假设你必须排序一个字符串数组列表...这就是为什么我先排序内部数组列表,然后通过比较每个数组的第一项来排序外部列表。我没有看到你回答中的联系人。

在这种情况下,删除用于对内部列表进行排序的for循环,您应该仍然能够使用comparator进行排序,但是比较到正确的索引,而不是第一个元素。

Collections.sort(listOfLists, new ListOfStringListCompator());

充星腾
2023-03-14

我觉得发布这个很糟糕,因为列表

ArrayList<ArrayList<String>> yourList = ...
Collections.sort(yourList, new Comparator<ArrayList<String>>() {
    @Override
    public int compare(ArrayList<String> one, ArrayList<String> two) {
        return one.get(1).compareTo(two.get(1));
    }
});

盖昀
2023-03-14

假设列表中的列表具有顺序id、名称、地址和编号(即名称位于索引1)中的字符串,则可以使用比较器,如下所示:

List<List<String>> list;
Collections.sort(list, new Comparator<List<String>> () {
    @Override
    public int compare(List<String> a, List<String> b) {
        return a.get(1).compareTo(b.get(1));
    }
});

顺便说一句,使用ArrayList并不重要:使用抽象类型(即List)声明变量是一种很好的编程实践。

 类似资料:
  • 问题内容: 我有一个数组列表 并且在arraylist中有很多类型的对象值,这些值都是不同的。其中一个值是也与该数组列表一起设置的项目等级。 现在,我想根据排名的顺序对数组列表进行排序。排名值已在此数组列表中设置。 我如何排序其中一个具有很多类型的值…的数组列表? 谢谢大家。 问题答案: 使它们都是一种类型的对象。设计一个通用的基类或一个 然后 用于整理它们 例如。 假设arraylist中的所有

  • 问题内容: 我需要按商品所在的过道对购物清单进行排序,例如: [面包] [1] [牛奶] [2] [谷物] [3] 我打算使用ArrayList进行此操作,并且想知道如何制作2D ArrayList奖励问题:关于如何按过道编号排序的任何想法? 问题答案: 您没有开设可容纳您的物品和过道信息的课程吗?就像是: 如果不这样做,请考虑创建一个- 与尝试将这些属性粘贴到另一个ArrayList中的Arra

  • 问题内容: 仅对ArrayList的一部分进行排序的 最有效 方法是什么?说一个包含10个元素的Arraylist中从索引0到3的所有元素。 Java中有可用的库函数吗? 除了排序整个列表! 编写高度优化的自定义排序功能将需要一些工作。 问题答案: 在文档中对此进行了描述: 公共列表subList(int fromIndex,int toIndex) 返回此列表中指定的fromIndex(包括)和

  • 我创建了这个随机生成的arraylist,它生成1-50个数字。我想按升序对生成的数字进行排序。不使用集合。sort,我如何使用ArrayList进行排序?

  • 本文向大家介绍Java ArrayList的不同排序方法,包括了Java ArrayList的不同排序方法的使用技巧和注意事项,需要的朋友参考一下 由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经