Sobes.tech
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); // თუ იყო, წაშლის