Các phương thức trợ giúp từ câu trả lời được chấp nhận là không cần thiết. Luồng có thể được sử dụng với lambdas hoặc thường được rút ngắn bằng cách sử dụng Tham khảo phương pháp . Luồng cho phép các hoạt động chức năng. map()
chuyển đổi các phần tử và collect(...)
hoặc toArray()
bọc luồng trở lại thành một mảng hoặc tập hợp.
Bài nói chuyện của Venkat Subramaniam (video) giải thích nó tốt hơn tôi.
1 Chuyển đổi List<String>
sangList<Integer>
List<String> l1 = Arrays.asList("1", "2", "3");
List<Integer> r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList());
// the longer full lambda version:
List<Integer> r1 = l1.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
2 Chuyển đổi List<String>
sangint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 Chuyển đổi String[]
sangList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 Chuyển đổi String[]
sangint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 Chuyển đổi String[]
sangList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (tiền thưởng) Chuyển đổi int[]
thànhString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
Tất nhiên là có thể có nhiều biến thể hơn.
Cũng xem phiên bản Ideone của những ví dụ này . Có thể bấm ngã ba rồi chạy để chạy trên trình duyệt.
Lists.transform()
.