相关疑难解决方法(0)

Stream Way获取匹配boolean的第一个元素的索引

我有一个List<Users>.我想用特定的用户名获取流中(第一个)用户的索引.我不想竟要求User.equals()一些描述User,只是为了有相同的用户名.

我可以想到这样做的丑陋方法(迭代和计数),但感觉应该有一个很好的方法来做到这一点,可能是通过使用Streams.到目前为止,我所拥有的最好的是:

int index = users.stream()
    .map(user -> user.getName())
    .collect(Collectors.toList())
    .indexOf(username);
Run Code Online (Sandbox Code Playgroud)

这不是我写过的最糟糕的代码,但它并不好.它也不是那么灵活,因为它依赖于一个带有.equals()描述你正在寻找的属性的函数的类型的映射函数; 我宁愿有一些可以随心所欲的东西Function<T, Boolean>

谁知道怎么样?

java java-8 java-stream

40
推荐指数
5
解决办法
5万
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1