سؤال

وأواجه مشكلة يبدو أن لا حل straighforward.

وأنا باستخدام java.util.Map، وأريد أن تحديث قيمة في زوج الرئيسية ذات القيمة.

والآن، أنا أفعل ذلك شابه ذلك:

private Map<String,int> table = new HashMap<String,int>();
public void update(String key, int val) {
    if( !table.containsKey(key) ) return;
    Entry<String,int> entry;
    for( entry : table.entrySet() ) {
        if( entry.getKey().equals(key) ) {
            entry.setValue(val);
            break;
        }
    }
}

وحتى لا يكون هناك أي طريقة بحيث يمكنني الحصول على الكائن Entry المطلوبة دون الحاجة إلى تكرار خلال Map كامل؟ أو هل هناك طريقة لتحديث قيمة دخول في المكان؟ بعض الطرق في Map مثل setValue(String key, int val)؟

وJRH

هل كانت مفيدة؟

المحلول

استخدم

table.put(key, val);

لإضافة مفتاح زوج جديد / قيمة أو الكتابة فوق قيمة المفتاح في القائمة.

ومن Javadocs:

<اقتباس فقرة>   

وV وضع (مفتاح K، قيمة V): الزميلة القيمة المحددة مع المفتاح المحدد في هذه الخريطة (عملية اختيارية). إذا كانت خريطة واردة سابقا تعيين مفتاح، يتم استبدال قيمة القديمة القيمة المحددة. (ويقال إن خريطة م لاحتواء تعيين لك أساسي إذا وفقط إذا m.containsKey (ك) سيعود صحيح).

نصائح أخرى

إذا المفتاح هو table.put(key, val) الحاضر سوف فقط الكتابة فوق قيمة إلا فإنه سوف إنشاء إدخال جديد. لوطي! وانت القيام به. :)

ويمكنك الحصول على قيمة من الخريطة عن طريق استخدام مفتاح غير table.get(key); ذلك حول هذا الموضوع

وأنت مجرد استخدام في طريقة

public Object put(Object key, Object value)

وإذا كان المفتاح بالفعل موجودة في خريطة ثم يتم إرجاع القيمة السابقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top