在java中通过流对数组进行排序

zzlelutf  于 2021-06-26  发布在  Java
关注(0)|答案(2)|浏览(434)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

三天前关门了。
改进这个问题
我正在用java做一个练习,通过将所有以给定字符开头的元素放在数组的前面来对数组进行排序。我可以不用lambda表达式完成这个练习,但是我很难使用streams来完成它。

String[]sortByE = words;
    for(String i:words){
      if (i.contains("a")){
        sortByE = Arrays.stream(words)
            .map(x->i)
            .toArray(String[]::new);
      }
    }
bq3bfh9z

bq3bfh9z1#

您可以使用stream方法 Stream.sorted( Comparator ) .

String[]sortByE = words;
sortByE = Arrays.stream(words)
        .sorted( new MyComparator())
        .toArray(String[]::new);
icnyk63a

icnyk63a2#

您可以使用自定义比较器。

String[] result = Arrays.stream(words).sorted(
     (a,b)->a.startsWith("a") ? (b.startsWith("a") ? 0 : -1) 
         : b.startsWith("a") ? 1 : 0).toArray(String[]::new);

相关问题