Bạn có thể sử dụng sự kết hợp sau đây của các chức năng tiêu chuẩn:
StreamSupport.stream(Spliterators.spliteratorUnknownSize(CollectionUtils.toIterator(enumeration), Spliterator.IMMUTABLE), parallel)
Bạn cũng có thể thêm các đặc điểm giống như NONNULL
hay DISTINCT
.
Sau khi áp dụng nhập khẩu tĩnh này sẽ trở nên dễ đọc hơn:
stream(spliteratorUnknownSize(toIterator(enumeration), IMMUTABLE), false)
bây giờ bạn có một tiêu chuẩn Suối Java 8 được sử dụng trong bất kỳ cách nào! Bạn có thể vượt qua true
để xử lý song song.
Để chuyển đổi từ Enumeration để Iterator sử dụng bất kỳ:
CollectionUtils.toIterator()
từ mùa xuân 3,2 hoặc bạn có thể sử dụng
IteratorUtils.asIterator()
từ Apache Commons Bộ sưu tập 3.2
Iterators.forEnumeration()
từ Google Ổi
Nguồn
2014-11-26 08:53:18
Các số được thay thế bằng bộ lặp trong Java 1.2 vào năm 1998. Thật không may bạn vẫn phải sử dụng nó. : | –
Bạn có thể điều chỉnh Enumeration to Iterator: http://stackoverflow.com/questions/5007082/treat-enumerationt-as-iteratort – marcinj
@PeterLawrey Iterator xuất hiện, nhưng vẫn còn các API lõi sử dụng Enumeration. Generics xuất hiện, nhưng vẫn có các API lõi sử dụng các kiểu trống hoặc trả về Object. Lambdas xuất hiện, nhưng Swing vẫn đầy giao diện đa phương thức, vì vậy chúng tôi không thể sử dụng chúng. Nó không thực sự làm tôi ngạc nhiên nữa khi tôi tìm thấy các API mà Java quên hiện đại hóa; nó chỉ làm tôi buồn. – Trejkaz