【问题标题】:Sorting an array of String based on the strings sizes (length) [closed]根据字符串大小(长度)对字符串数组进行排序[关闭]
【发布时间】:2015-01-29 12:21:34
【问题描述】:

如何根据字符串大小(即String#length)对String 的数组进行排序?

【问题讨论】:

标签: java arrays string sorting


【解决方案1】:

在 Java 8 中,这可以在一行中完成,

Arrays.sort(randomString, (s1,s2) -> Integer.compare(s1.length(), s2.length()));

如果你想要相反的顺序(从高到低),

改成,

Arrays.sort(randomString, (s1,s2) -> Integer.compare(s2.length(), s1.length()));

另一种方法,

使用Comparator.comparing(String::length)

Arrays.sort(yourArray, Comparator.comparing(String::length)); 

颠倒顺序,

Arrays.sort(yourArray, Comparator.comparing(String::length).reversed()); 

【讨论】:

  • 可能是单行的,但不会就地排序并且不必要地复制数据。
【解决方案2】:

您可以实现一个使用长度的Comparator,并将Arrays.sort 与您的比较器一起使用。比较器可能如下所示:

class StringComparator implements Comparator<String>{
   public int compare(String o1, String o2){
      return Integer.compare(o1.length(), o2.length());
   }
}

现在您可以使用以下调用进行排序:

Arrays.sort(strings, new StringComparator());

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 2016-04-23
    • 2018-02-23
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    相关资源
    最近更新 更多