【问题标题】:How do I sort a Set to a List如何将集合排序到列表
【发布时间】:2011-12-12 16:00:53
【问题描述】:

在 Android 中,我有一个 Set,我想把它变成一个排序后的 List

Collections.sort()怎么办?

protected List<PackageInfo> doInBackground(Void... params) {

        Set<PackageInfo> adPackages = new HashSet<PackageInfo>();
        //ArrayList<PackageInfo> adPackages = new ArrayList<PackageInfo>();

        [..............]

        return new ArrayList<PackageInfo>(adPackages);
        //return adPackages;
    }

【问题讨论】:

    标签: java android sorting arraylist set


    【解决方案1】:

    List 有一个构造函数,允许您使用任何 Collection 创建它。然后使用 Collections.sort(List list) 方法。

    例如

    Set<String> set = new HashSet<String>();
    set.add("This is a unsorted set");
    List<String> list = new ArrayList<String>(set);
    Collections.sort(list); // or Collections.sort(list, Comparator);
    

    干杯。

    【讨论】:

    • 如果你要建议用另一个数据结构填充一个列表,为什么不通知 OP 而不是 sorted 数据结构呢?
    • 因为其他人已经说明了该方法..我只是给出了一个不同的选择。可能存在一种情况,即 OP 仅限于排序列表(尽管我无法想象为什么),但我的回答只是提供另一种选择。 :)
    【解决方案2】:

    这不是一个真正的 Android 问题。寻找java sort, comparator。这是一个很好的教程: http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

    【讨论】:

      【解决方案3】:

      恕我直言,我会使用SortedSet 而不是标准的Set,然后使用List 接口的addAll 方法将集合(即隐式排序)转换为排序列表而无需在数据结构之外进行任何排序。

      请注意,这将要求存储在这些数据结构中的对象实现Comparable 接口。

      【讨论】:

        【解决方案4】:

        我认为这可能对你有用

        public void sortArrayPackage(ArrayList<PackageInfo> array)
        {
          Collections.sort(array, new Comparator<PackageInfo>(){
            public int compare(PackageInfo o1, PackageInfo o2) {
              System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
              String package1 = o1.packageName;
              String package2 = o2.packageName;
        
              return package1.compareTo(package2);
            }
          });
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-14
          • 2012-12-08
          • 1970-01-01
          • 2011-02-10
          • 1970-01-01
          • 1970-01-01
          • 2013-03-23
          • 2020-08-16
          相关资源
          最近更新 更多