获取第一个元素匹配布尔值的索引的流方式
2022-08-31 12:34:22
我有一个.我想获取流中具有特定用户名的(第一个)用户的索引。我不想真正要求对某些描述,只是为了具有相同的用户名。List<Users>
User
.equals()
User
我可以想出一些丑陋的方法来做到这一点(迭代和计数),但感觉应该有一个很好的方法来做到这一点,可能是通过使用Streams。到目前为止,我拥有的最好的是:
int index = users.stream()
.map(user -> user.getName())
.collect(Collectors.toList())
.indexOf(username);
这不是我写过的最糟糕的代码,但它不是很好。它也不是那么灵活,因为它依赖于一个映射到一个类型,该类型具有描述您要查找的属性的函数;我宁愿有一些可以任意工作的东西.equals()
Function<T, Boolean>
有人知道怎么做吗?