Java ArrayDeque – removeIf()

Java Arraydeque Removeif



“java.util.ArrayDeque.removeIf() ใช้เพื่อลบองค์ประกอบเฉพาะออกจากวัตถุคอลเลกชัน ArrayDeque โดยใช้พารามิเตอร์ - เพรดิเคต มันใช้เงื่อนไขที่ว่าถ้ามันเป็นจริง องค์ประกอบในวัตถุที่ตรงตามเงื่อนไขนี้จะถูกลบออกจากวัตถุคอลเลกชัน”

ไวยากรณ์

arraydeque_object ลบถ้า ( เพรดิเคต filter_condition )

ที่ไหน arraydeque_object แสดงถึงคอลเล็กชัน ArrayDeque







พารามิเตอร์



ใช้เพรดิเคตที่เป็นไปตามเงื่อนไข



บันทึก





ถ้าเพรดิเคตเป็นโมฆะ แล้ว a NullPointerException ถูกโยน

ตัวอย่าง 1

ที่นี่ เราจะสร้างคอลเลกชัน ArrayDeque ที่มีองค์ประกอบประเภทสตริง 5 รายการ และลบสตริงที่ขึ้นต้นด้วย 'V'



นำเข้า java.util.* ;
นำเข้า java.util.ArrayDeque ;

สาธารณะ ระดับ หลัก
{
สาธารณะ คงที่ โมฆะ หลัก ( สตริง [ ] args ) {

// สร้าง ArrayDeque ชื่อ a_deque_object ด้วย String type
Dequea_deque_object = ใหม่ ArrayDeque ( ) ;

//ใส่ 5 สตริงเข้าไป
a_deque_object. เพิ่ม ( 'ไสลาจา' ) ;
a_deque_object. เพิ่ม ( “ฟารานา” ) ;
a_deque_object. เพิ่ม ( 'ความสำเร็จ' ) ;
a_deque_object. เพิ่ม ( 'วิชัย' ) ;
a_deque_object. เพิ่ม ( 'ข้างนอก' ) ;

ระบบ . ออก . println ( 'ข้อมูลอยู่ใน a_deque_object: ' + a_deque_object ) ;

// ลบสตริงที่ขึ้นต้นด้วย 'V'
a_deque_object. ลบถ้า ( กรอง -> ( กรอง. charAt ( 0 ) == 'ใน' ) ) ;

ระบบ . ออก . println ( 'หลังจากลบชื่อจะขึ้นต้นด้วย V : ' + a_deque_object ) ;

}
}

เอาท์พุท:

ดังนั้นเราจะเห็นว่า Vijaya และ Vani เป็นสองสตริงที่ขึ้นต้นด้วย 'V' ดังนั้นจึงถูกลบออกจาก a_deque_object

นี่คือเพรดิเคตที่ใช้ในการกรองข้อมูลนี้คือ – ตัวกรอง -> (filter.charAt(0) == 'V')

ที่นี่ตัวกรองหมายถึงตัวแปร

คำอธิบาย

สาย 9,18:

สร้าง ArrayDeque ชื่อ a_dequeobject ด้วยประเภทสตริงและแสดง

สาย 21,23:

ตอนนี้กรอง a_deque_object ด้วยเพรดิเคต – ตัวกรอง -> (filter.charAt(0) == 'V')

ตัวอย่าง 2

ที่นี่ เราจะสร้างคอลเลกชัน ArrayDeque ที่มีองค์ประกอบประเภทจำนวนเต็ม 5 รายการ และลบค่าที่มากกว่า 200

นำเข้า java.util.* ;
นำเข้า java.util.ArrayDeque ;

สาธารณะ ระดับ หลัก
{
สาธารณะ คงที่ โมฆะ หลัก ( สตริง [ ] args ) {

// สร้าง ArrayDeque ชื่อ a_deque_object ด้วย Integer type
Dequea_deque_object = ใหม่ ArrayDeque ( ) ;

//ใส่จำนวนเต็ม 5 ลงไป
a_deque_object. เพิ่ม ( 100 ) ;
a_deque_object. เพิ่ม ( 200 ) ;
a_deque_object. เพิ่ม ( 300 ) ;
a_deque_object. เพิ่ม ( 400 ) ;
a_deque_object. เพิ่ม ( 500 ) ;

ระบบ . ออก . println ( 'ข้อมูลอยู่ใน a_deque_object: ' + a_deque_object ) ;

//ลบค่าที่มากกว่า200
a_deque_object. ลบถ้า ( กรอง -> ( กรอง > 200 ) ) ;
ระบบ . ออก . println ( 'หลังจากลบค่าที่มากกว่า 200: ' + a_deque_object ) ;

}
}

เอาท์พุท:

ดังนั้นเราจะเห็นว่า 300,400 และ 500 เป็นค่าสามค่าที่มากกว่า 200 ดังนั้นค่าเหล่านี้จึงถูกลบออกจาก a_deque_object

นี่คือเพรดิเคตที่ใช้ในการกรองข้อมูลนี้คือ – ตัวกรอง -> (ตัวกรอง > 200)

ที่นี่ตัวกรองหมายถึงตัวแปร

คำอธิบาย

สาย 9,18:

สร้าง ArrayDeque ชื่อ a_dequeobject ด้วยประเภทจำนวนเต็มและแสดง

สาย 21,22:

ตอนนี้กรอง a_deque_object ด้วยเพรดิเคต – ตัวกรอง -> (ตัวกรอง > 200)

ตัวอย่างที่ 3: การสาธิต NullPointerException

ให้ระบุ Null เป็นเพรดิเคต

นำเข้า java.util.* ;
นำเข้า java.util.ArrayDeque ;

สาธารณะ ระดับ หลัก
{
สาธารณะ คงที่ โมฆะ หลัก ( สตริง [ ] args ) {

// สร้าง ArrayDeque ชื่อ a_deque_object ด้วย Integer type
Dequea_deque_object = ใหม่ ArrayDeque ( ) ;

//ใส่จำนวนเต็ม 5 ตัวเข้าไป
a_deque_object. เพิ่ม ( 100 ) ;
a_deque_object. เพิ่ม ( 200 ) ;
a_deque_object. เพิ่ม ( 300 ) ;
a_deque_object. เพิ่ม ( 400 ) ;
a_deque_object. เพิ่ม ( 500 ) ;

ระบบ . ออก . println ( 'ข้อมูลอยู่ใน a_deque_object: ' + a_deque_object ) ;

a_deque_object. ลบถ้า ( โมฆะ ) ;

}
}

เอาท์พุท:

เราจะเห็นได้ว่า NullPointerException ถูกยกขึ้น

บทสรุป

เราเห็นวิธีลบองค์ประกอบออกจากวัตถุคอลเลกชัน ArrayDeque ด้วย Predicate โดยใช้เมธอด removeIf() ตรวจสอบให้แน่ใจว่าคุณไม่ได้ระบุค่า null เนื่องจากเป็นผลลัพธ์ใน NullPointerException เราได้พูดคุยถึงสองตัวอย่างโดยใช้เงื่อนไขที่แตกต่างกันในเพรดิเคต และยังแสดงให้เห็น NullPointerException