บทความนี้อธิบายการใช้งาน Java ของการกรองค่าด้วยคีย์ว่างเปล่าหรือค่าในการรวบรวมแผนที่ แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
นำเข้า java.util.Collection; นำเข้า java.util.hashmap; นำเข้า java.util.iterator; นำเข้า java.util.map; นำเข้า java.util.set;/*** กรองค่าของคีย์หรือค่าในการรวบรวมแผนที่ คีย์หรือค่าค่าในแผนที่ * @param Map */ โมฆะคงที่สาธารณะ removenullentry (แผนที่แผนที่) {Removenullkey (แผนที่); RemovenullValue (แผนที่); } / ** * ลบคีย์ที่ว่างเปล่าของแผนที่ * @param map * @return * / โมฆะคงที่สาธารณะ removenullkey (แผนที่แผนที่) {set set = map.keyset (); สำหรับ (iterator iterator = set.iterator (); iterator.hasnext ();) {object obj = (object) iterator.next (); ลบ (obj, iterator); }} / ** * ลบค่าที่ว่างเปล่าในแผนที่ * @param Map * @return * / โมฆะคงที่สาธารณะ removenullValue (แผนที่แผนที่) {set set = map.keyset (); สำหรับ (iterator iterator = set.iterator (); iterator.hasnext ();) {object obj = (object) iterator.next (); ค่าวัตถุ = (วัตถุ) map.get (obj); ลบ (ค่าตัววนซ้ำ); }} /*** ลบค่า null ในแผนที่** ตัววนซ้ำทำงานในเธรดอิสระและมีล็อค mutex * หลังจากสร้างตัววนซ้ำตารางดัชนีที่เชื่อมโยงเดียวชี้ไปที่วัตถุต้นฉบับจะถูกสร้างขึ้น เมื่อจำนวนวัตถุดั้งเดิมเปลี่ยนแปลงเนื้อหาของตารางดัชนีนี้จะไม่เปลี่ยนแปลงแบบซิงโครนัส * ดังนั้นเมื่อตัวชี้ดัชนีเคลื่อนที่ไปข้างหลังวัตถุที่จะวนซ้ำไม่สามารถพบได้ ดังนั้นตามหลักการที่ล้มเหลวอย่างรวดเร็วผู้วนซ้ำจะโยน java.util.concurrentModificationException ทันที * ดังนั้นตัววนซ้ำจะไม่อนุญาตให้มีการเปลี่ยนแปลงวัตถุที่วนซ้ำเมื่อมันทำงาน * แต่คุณสามารถใช้วิธีการของตัวเองลบ () เพื่อลบวัตถุ วิธี iterator.remove () จะรักษาความสอดคล้องของดัชนีในขณะที่การลบวัตถุที่วนซ้ำในปัจจุบัน * @param obj * @param iterator */ โมฆะคงที่ส่วนตัวลบ (Object OBJ, Iterator Iterator) {if (OBJ Instance String) {String str = (String) OBJ; if (isempty (str)) {// กรองผลลัพธ์ผลลัพธ์ของฟังก์ชั่นหลักด้วย null และ "" แผนที่: {2 = bb, 1 = aa, 5 = cc, 8 =} // ถ้า ("" เท่ากับ (str.trim ()) {// ตัวกรองผลลัพธ์ของฟังก์ชันหลัก iterator.remove (); }} อื่นถ้า (obj instanceof collection) {คอลเลกชัน col = (คอลเลกชัน) obj; if (col == null || col.isempty ()) {iterator.remove (); }} อื่นถ้า (OBJ Instanceof Map) {MAP TEMP = (MAP) OBJ; if (temp == null || temp.isempty ()) {iterator.remove (); }} อื่นถ้า (OBJ Instanceof Object []) {Object [] array = (Object []) OBJ; if (array == null || array.length <= 0) {iterator.remove (); }} else {ถ้า (obj == null) {iterator.remove (); }}} บูลีนคงที่สาธารณะ isempty (Object OBJ) {return obj == null || obj.toString (). ความยาว () == 0; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {แผนที่แผนที่ = ใหม่ hashmap (); map.put (1, "AA"); map.put ("2", "bb"); map.put ("5", "CC"); map.put ("6", null); map.put ("7", ""); map.put ("8", ""); System.out.println (แผนที่); // ผลลัพธ์ผลลัพธ์: {2 = bb, 1 = aa, 7 =, 6 = null, 5 = cc, 8 =} removenullentry (แผนที่); System.out.println (แผนที่); -ผลการทำงาน:
{1 = aa, 2 = bb, 5 = cc, 6 = null, 7 =, 8 =}
{1 = aa, 2 = bb, 5 = cc, 8 =}
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน