Middle
180
რა განსხვავებაა put და compute მეთოდებს შორის?
პასუხი AI-სგან
sobes.tech AI
put(key, value) მარტივად ასოცირებს value-ს key-სთან, შეცვლის არსებულ მნიშვნელობას თუ ის უკვე არსებობს.
compute(key, remappingFunction) ითვლის ახალ მნიშვნელობას key-სთვის გამოყენებით მიწოდებული remappingFunction. ფუნქცია იღებს მიმდინარე key-ს და მის მიმდინარე მნიშვნელობას (ან null, თუ key არ არსებობს) და აბრუნებს ახალ მნიშვნელობას, რომელიც დაკავშირებული იქნება key-სთან. თუ ფუნქცია აბრუნებს 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-ს
// გამოთვლის გამოყენება გამრავლებისთვის
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); // თუ იყო, წაშლის