Nếu mục đích của mẫu và câu hỏi này là tìm ra cách ánh xạ các chuỗi với một luồng int (ví dụ: sử dụng một luồng int để truy cập một chỉ mục trong Mảng chuỗi), bạn cũng có thể sử dụng quyền anh, sau đó truyền sang một int (sau đó sẽ cho phép truy cập chỉ mục của mảng).
int[] numbers = {0, 1, 2, 3};
String commaSeparatedNumbers = Arrays.stream(numbers)
.boxed()
.map((Integer i) -> Integer.toString((int)i))
.collect(Collectors.joining(", "));
Lời gọi .boxed () chuyển đổi IntStream của bạn (một luồng các int nguyên thủy) thành Luồng (một luồng đối tượng - cụ thể là các đối tượng Số nguyên), sau đó sẽ chấp nhận trả về của một đối tượng (trong trường hợp này là đối tượng Chuỗi) từ lambda của bạn. Ở đây, nó chỉ là một biểu diễn chuỗi của số cho mục đích trình diễn, nhưng nó có thể dễ dàng (và thực tế hơn) là bất kỳ đối tượng chuỗi nào - giống như phần tử của một mảng chuỗi như đã đề cập trước đây.
Tôi chỉ nghĩ rằng tôi sẽ đưa ra một khả năng khác. Trong lập trình, luôn có nhiều cách để hoàn thành một nhiệm vụ. Biết càng nhiều càng tốt, sau đó chọn cái phù hợp nhất cho nhiệm vụ hiện tại, lưu ý các vấn đề về hiệu suất, tính trực quan, sự rõ ràng của mã, sở thích của bạn trong phong cách mã hóa và tự ghi lại nhiều nhất.
Chúc bạn viết mã vui vẻ!
IntStream
và làStream<Integer>
gì?