Co znaczy Bucket?

17

W starszym kodzie znalazłem klasę o nazwie BucketService.

Ponieważ angielski nie jest moim językiem ojczystym, próbowałem to przetłumaczyć, ale nie ma to sensu.

Znalazłem kilka termin, takich jak sortowanie wiadra i tak dalej, ale nadal nie rozumiem. Właściwie to słowo jest używane dość często w programowaniu

Byłbym pomocny w przypadku prostego wyjaśnienia tego słowa

użytkownik278618
źródło
1
nigdy nie oceniaj klasy po nazwie. Jakie API to udostępnia? jaki zawiera stan w jaki sposób jest używany / wywoływany / instowany? nie wiedząc, że jedyną poprawną odpowiedź na pytanie jak twoje wydaje się być Mu
gnat
2
Szczególnie z nieokreśloną nazwą, taką jak „BucketService” - brzmi jak „UtilityManager” lub „ThingDoer”. Przy takiej niejasnej nazwie jedyną opcją jest spojrzenie na kod. Niestety, zajęcia z nazwami że niejasne ogólnie zrobić wszystkiego po trochu (lub dużo wszystkiego, jeśli masz pecha).
Tacroy

Odpowiedzi:

36

Wiadro w języku angielskim jest urządzenie do zatrzymywania wody.

W przypadku oprogramowania oznacza zwykle typ danych grupujący obiekty.

Termin ten jest często używany podczas omawiania algorytmów mieszających , w których różne elementy, które mają ten sam kod skrótu (kolizję skrótu) trafiają do tego samego „segmentu”. Oznacza to, że obiekty są pogrupowane według wartości skrótu.

Ogólnie rzecz biorąc, funkcja skrótu może mapować kilka różnych kluczy do tego samego indeksu. Dlatego każde gniazdo tabeli skrótów jest skojarzone (domyślnie lub jawnie) z zestawem rekordów, a nie z jednym rekordem. Z tego powodu każde pole tabeli skrótów jest często nazywane segmentem, a wartości skrótu nazywane są również indeksami segmentu.

Nieformalnie widziałem termin używany ze słownikami, których wartość (nie klucz) jest zbiorem przedmiotów.


Wikipedia ma stronę poświęconą terminowi stosowanemu w informatyce - Bucket (Computing) :

W informatyce pojęcie wiadro może mieć kilka znaczeń. Jest używany zarówno jako żywa metafora, jak i ogólnie przyjęty termin techniczny w niektórych specjalistycznych obszarach. Zbiornik jest najczęściej rodzajem bufora danych lub rodzajem dokumentu, w którym dane są podzielone na regiony.

Oded
źródło
6
+1 pokonałeś mnie do tego! Chciałbym dodać, że cel algorytmu mieszania sortującego elementy na segmenty pozwala na szybsze pobieranie i sortowanie dużych kolekcji. Jeśli chcę wyszukać 20 pozycji dla konkretnego elementu, wówczas nieefektywnym sposobem byłoby wyszukiwanie pojedynczo według identyfikatora. Lepszym sposobem byłoby przechowywanie przez kolekcję elementów z tym samym hashem w wiadrze , więc w zbiorniku należy przeszukiwać tylko kilka elementów, a nie całą listę.
wałek klonowy
@maple_shaft - Dobra uwaga na temat używania wiader w haszowaniu. Nie sądzę jednak, żeby miało to znaczenie dla pytania :)
Oded
0

Być może jest to odniesienie do „segmentu bitów”. To tam bity, które są przenoszone z bajtu, przesuwają się w lewo i prawo.

Jon Strayer
źródło