这是一个代码,用于检查列表中是否匹配特定字符串
if (Stream.of(getPlayingSongList()).filter(o -> o.getId().equals(songList.get(position).getId())).findFirst().isPresent()) {
ToastMethod.show(getActivity(), "Song is already in queue", true);
}
我想知道,getPlayingSongList()
中的哪个索引匹配。
我在android中使用com.annimon:stream
库。
答案 0 :(得分:2)
如何使用IntStream.range
?
由于我没有完整的代码,我只是举了一个虚拟的例子:
String[] myArray = { "a", "b", "c", "d" };
OptionalInt c = IntStream.range(0, myArray.length).filter(n -> "c".equals(myArray[n])).findFirst();
if (c.isPresent()) {
System.out.println(c.getAsInt());
}
>>>> 2
答案 1 :(得分:2)
使用Akah的建议,对于android,下面的代码效果很好。
Optional<Integer> c = Stream.range(0, getPlayingSongList().size()).filter(n -> songList.get(position).getId().equals(getPlayingSongList().get(n).getId())).findFirst();
if (c.isPresent()) {
Log.i("get index", c.get()+" ok");
}
非常感谢。