การหาคู่ที่ต่อเนื่องกัน
หากคุณยินดีที่จะใช้ไลบรารีของบุคคลที่สามและไม่จำเป็นต้องใช้การขนานกันjOOλมีฟังก์ชันหน้าต่างรูปแบบ SQL ดังนี้
System.out.println(
Seq.of(0, 1, 2, 3, 4)
.window()
.filter(w -> w.lead().isPresent())
.map(w -> tuple(w.value(), w.lead().get())) // alternatively, use your new Pair() class
.toList()
);
การให้ผลผลิต
[(0, 1), (1, 2), (2, 3), (3, 4)]
lead()
ฟังก์ชั่นการเข้าถึงค่าถัดไปเพื่อสำรวจเส้นทางจากหน้าต่าง
การค้นหาสามเท่าต่อเนื่อง / สี่เท่า / n-tuples
คำถามในความคิดเห็นกำลังขอวิธีแก้ปัญหาที่กว้างขึ้นโดยที่ไม่ควรจับคู่ แต่ควรรวบรวม n-tuples (หรืออาจเป็นรายการ) นี่จึงเป็นแนวทางอื่น:
int n = 3;
System.out.println(
Seq.of(0, 1, 2, 3, 4)
.window(0, n - 1)
.filter(w -> w.count() == n)
.map(w -> w.window().toList())
.toList()
);
การให้รายชื่อรายการ
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
หากไม่มีfilter(w -> w.count() == n)
ผลลัพธ์ก็จะเป็น
[[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4], [4]]
ข้อจำกัดความรับผิดชอบ: ฉันทำงานให้กับ บริษัท ที่อยู่เบื้องหลังjOOλ