是否有使用Lambda表达式编写此方法的更简洁的方法?

时间:2018-11-28 03:55:14

标签: java lambda

我正在使用自定义比较器类AlphaNumComparator通过其方法CREATE TRIGGER [dbo].[Modified_Demand_Request1] ON [dbo].[Demand_Request] AFTER UPDATE AS INSERT INTO [dbo].[Modified_Demand_Request] ([CASE_ID], [TE_PART_NUMBER],[VALUE], [DEMAND_DATE], [Modified_On]) SELECT [CASE_ID], [TE_PART_NUMBER], [VALUE], [DEMAND_DATE], GETDATE() FROM INSERTED 的输出对“相册”数组进行排序,该类具有一个方法getAlbumArtist(),该方法比较两个字符串。

我有以下代码可以正常工作:

compare

这似乎可以通过使用Java中的一些新语言功能来简化/使这种代码更清晰,但是我不太理解这些代码。有可能吗,还是随它而来?

3 个答案:

答案 0 :(得分:7)

我建议您使用

    Arrays.sort(albumArray, Comparator.comparing(Album::getAlbumArtist, comparator));

答案 1 :(得分:2)

您可以这样做

Album[] sortedAlbums = Arrays.stream(albumArray)
    .sorted(Comparator.comparing(a -> a.getAlbumArtist().toLowerCase()))
    .toArray(Album[]::new);

答案 2 :(得分:1)

假设albumArraylist,您可以这样做

albumArray.sort(Comparator.comparing(Album::getAlbumArtist, String.CASE_INSENSITIVE_ORDER));

否则,您可以这样做

Arrays.sort(albumArray, Comparator.comparing(Album::getAlbumArtist, String.CASE_INSENSITIVE_ORDER));