تصف هذه المقالة تنفيذ Java لتصفية القيم باستخدام مفتاح أو قيمة فارغة في مجموعة MAP. شاركه للرجوع إليه ، على النحو التالي:
استيراد java.util.collection ؛ استيراد java.util.hashmap ؛ استيراد java.util.iterator ؛ استيراد java.util.map ؛ استيراد java.util.set ؛/*** تصفية قيم المفتاح أو القيمة في مجموعة الخريطة مع مفاتيح فارغة* @author lmb* @date 2017-3-14 أو قيمة القيمة في الخريطة * param map */ public static void removenultry (map map) {Removenullkey (map) ؛ Removenullvalue (MAP) ؛ } / ** * قم بإزالة المفتاح الفارغ للخريطة * param خريطة * @return * / public static void removenullkey (خريطة الخريطة) {set set = map.keyset () ؛ لـ (iterator iterator = set.iterator () ؛ iterator.hasnext () ؛) {object obj = (object) iterator.next () ؛ إزالة (obj ، ايتراتور) ؛ }} / ** * قم بإزالة القيمة الفارغة في الخريطة * param map * return * / public static void removenullvalue (خريطة الخريطة) {set set = map.keyset () ؛ لـ (iterator iterator = set.iterator () ؛ iterator.hasnext () ؛) {object obj = (object) iterator.next () ؛ قيمة الكائن = (كائن) map.get (obj) ؛ إزالة (القيمة ، ايتراتور) ؛ }} /*** قم بإزالة القيم الخالية في الخريطة** يعمل ITerator في مؤشر ترابط مستقل وله قفل Mutex. * بعد إنشاء التكرار ، سيتم إنشاء جدول فهرس متصل أحادي الباحث يشير إلى الكائن الأصلي. عندما يتغير عدد الكائنات الأصلية ، لن يتغير محتوى جدول الفهرس هذا بشكل متزامن. * لذلك ، عندما يتحرك مؤشر الفهرس للخلف ، لا يمكن العثور على الكائن المراد تكراره. لذلك ، وفقًا لمبدأ الفشل ، سيلقي المتكرر على الفور استثناء java.util.concurrentModificationException. * لذلك ، لا يسمح التكرار بتغيير الكائنات المتكررة عندما يعمل. * ولكن يمكنك استخدام الطريقة الخاصة بـ ITERATAR REFEMER () لحذف الكائن. ستحافظ طريقة iterator.remove () على اتساق الفهرس مع حذف الكائن المتكرر الحالي. * param obj * param iterator */ private static void إزالة (object obj ، iterator iterator) {if (obj stiter string) {string str = (string) obj ؛ إذا كان (isempty (str)) {// تصفية نتيجة الإخراج للدالة الرئيسية مع الخالية و "الخريطة: {2 = bb ، 1 = aa ، 5 = cc ، 8 =} // if (". iterator.remove () ؛ }} else if (obj extryof collection) {collection col = (collection) obj ؛ if (col == null || col.isempty ()) {iterator.remove () ؛ }} آخر إذا (OBJ مثيل الخريطة) {map temp = (map) obj ؛ if (temp == null || temp.isempty ()) {iterator.remove () ؛ }} else if (obj extryof object []) {object [] array = (object []) obj ؛ if (Array == null || array.length <= 0) {iterator.remove () ؛ }} آخر {if (obj == null) {iterator.remove () ؛ }}} static boolean isempty (Object obj) {return obj == null || obj.toString (). length () == 0 ؛ } public static void main (string [] args) {map map = new 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 (map) ؛ // النتيجة الناتجة: {2 = bb ، 1 = aa ، 7 = ، 6 = null ، 5 = cc ، 8 =} removenultry (map) ؛ System.out.println (MAP) ؛ }}نتائج التشغيل:
{1 = aa ، 2 = bb ، 5 = cc ، 6 = null ، 7 = ، 8 =}
{1 = aa ، 2 = bb ، 5 = cc ، 8 =}
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.