Middle
Ի՞նչ է տարբերությունը put և compute մեթոդների միջև։
sobes.tech AI
Պատասխան AI-ից
put(key, value) պարզապես կապում է value-ն key-ի հետ, փոխարինելով գոյություն ունեցող արժեքը, եթե բանալիքը արդեն առկա է:
compute(key, remappingFunction) հաշվարկում է նոր արժեք key-ի համար օգտագործելով տրամադրված remappingFunction-ը: Ֆունկցիան ընդունում է ընթացիկ բանալին և նրա ընթացիկ արժեքը (կամ null, եթե բանալին չկա) և վերադարձնում է նոր արժեք, որը կկապվի բանալու հետ: Եթե ֆունկցիան վերադարձնի null, գրանցումը հեռացվում է:
Հիմնական տարբերությունները՝
- Հակառակ դեպքում բացակա բանալիների հետ աշխատելը:
putավելացնում է նոր արժեք:computeկարող է օգտագործել նախորդ արժեքը (նույնիսկnull) նոր արժեք հաշվարկելու համար: - Նախորդ արժեքից կախվածություն:
putսահմանում է արժեքը անկախ նախորդից:computeհստակ օգտագործում է նախորդ արժեքը հաշվարկային ֆունկցիայում: - Գրանցումների հեռացում:
put(key, null)հեռացնում է գրանցումը:computeհեռացնում է գրանցումը, եթե հաշվարկային ֆունկցիան վերադարձնում էnull:
Օգտագործման օրինակ՝
// `put`-ի օգտագործում
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // փոխարինում 1-ին 2-ով
// հաշվողչի ավելացման համար compute օգտագործելով
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana կլինի 1
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana կլինի 2
countsCompute.compute("cherry", (key, value) -> null); // հեռացնում է cherry-ը, եթե գոյություն ուներ