หากจุดประสงค์ของตัวอย่างและคำถามนี้คือการหาวิธีแมปสตริงกับสตรีมของ ints (ตัวอย่างเช่นการใช้สตรีม int เพื่อเข้าถึงดัชนีในอาร์เรย์ของสตริง) คุณยังสามารถใช้การชกมวยจากนั้นจึงแคสต์ไปที่ int (ซึ่งจะอนุญาตให้เข้าถึงดัชนีของอาร์เรย์)
int[] numbers = {0, 1, 2, 3};
String commaSeparatedNumbers = Arrays.stream(numbers)
.boxed()
.map((Integer i) -> Integer.toString((int)i))
.collect(Collectors.joining(", "));
การเรียก. boxed () แปลง IntStream ของคุณ (สตรีมของ Ints ดั้งเดิม) ของคุณเป็นสตรีม (สตรีมของอ็อบเจ็กต์ - คืออ็อบเจ็กต์จำนวนเต็ม) ซึ่งจะยอมรับการส่งคืนอ็อบเจ็กต์ (ในกรณีนี้คืออ็อบเจกต์ String) จาก แลมด้าของคุณ นี่เป็นเพียงการแสดงสตริงของตัวเลขเพื่อจุดประสงค์ในการสาธิต แต่อาจเป็นวัตถุสตริงใด ๆ ก็ได้ (และในทางปฏิบัติมากกว่า) เช่นเดียวกับองค์ประกอบของสตริงอาร์เรย์ตามที่กล่าวไว้ก่อนหน้านี้
แค่คิดว่าฉันเสนอความเป็นไปได้อื่น ในการเขียนโปรแกรมมีหลายวิธีในการทำงานให้สำเร็จ รู้ให้มากที่สุดจากนั้นเลือกสิ่งที่เหมาะกับงานที่ทำมากที่สุดโดยคำนึงถึงปัญหาด้านประสิทธิภาพการใช้งานง่ายความชัดเจนของโค้ดความชอบของคุณในรูปแบบการเข้ารหัสและการจัดทำเอกสารด้วยตนเองมากที่สุด
ขอให้สนุกกับการเขียนโค้ด!
IntStream
และStream<Integer>
?