색인을 기준으로 요소를 필터링하려면 다음 AtomicInteger을 처리하는 동안 색인을 저장하고 증가시키는 데 사용할 수 있습니다 Stream.
private static void filter(Stream<String> stream) {
AtomicInteger index = new AtomicInteger();
List<String> result = stream
.filter(el -> {
int i = index.getAndIncrement();
return i > 0 || (i == 0 && !"email".equals(el));
})
.collect(toList());
System.out.println(result);
}
public static void main(String[] args) {
filter(Stream.of("email", "test1", "test2", "test3"));
//[test1, test2, test3]
filter(Stream.of("test1", "email", "test2", "test3"));
//[test1, email, test2, test3]
filter(Stream.of("test1", "test2", "test3"));
//[test1, test2, test3]
}
이 방법을 사용하면 첫 번째 색인뿐만 아니라 모든 색인에서 요소를 필터링 할 수 있습니다.