微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从一副扑克牌中返回一个流

如何解决从一副扑克牌中返回一个流

我们考虑采用以下格式的一副扑克牌:

排名:2,3,4,5,6,7,8,9,T,J,Q,K,A

西装:S - 黑桃,D - 钻石,H - 心,C - 俱乐部

每张卡片都由 2 个字符标识 例如。 “3S”(黑桃 3)、“TC”(俱乐部的 10)、“AH”(心之王牌)。我想修改 getCardsBySuit 方法,以便返回一个 Stream 以及属于该花色的所有牌。

例如对于包含“2H”、“3S”、“TH”且花色为“H”的列表,结果应为包含“2H”和“TH”

的流
public static Stream<String> getCardsBySuit(List<String> cards,char suit) {
    return null;
}

解决方法

假设卡片中的所有元素至少有 2 个字符并且花色在第二位。

return cards.stream()
            .filter(s -> s.charAt(1) == suit);

请注意,在使用返回的流时,一旦应用了任何终端操作,您将无法再次使用相同的流对象。您将不得不再次调用此方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。