Was bedeutet Eimer?

17

Ich habe in altem Code eine Klasse gefunden, deren Name BucketService ist.

Da Englisch nicht meine Muttersprache ist, habe ich versucht, das zu übersetzen, aber es ergibt keinen Sinn.

Ich habe ein paar Termins gefunden, wie Eimersortierung und so weiter, aber ich verstehe es immer noch nicht. Tatsächlich wird dieses Wort in der Programmierung ziemlich häufig verwendet

Ich wäre für eine einfache Erklärung dieses Wortes hilfreich

user278618
quelle
1
Beurteile die Klasse niemals nach ihrem Namen. Welche API wird verfügbar gemacht? Welchen Zustand enthält es? Wie wird es verwendet / aufgerufen / instanziiert? ohne dass zu wissen, scheint die einzig richtige Antwort auf Frage wie das Ihre zu sein Mu
gnat
2
Besonders bei unscheinbaren Namen wie "BucketService" - es klingt wie "UtilityManager" oder "ThingDoer". Bei so einem vagen Namen können Sie sich nur den Code ansehen. Leider Klassen mit Namen , dass vage im Allgemeinen ein bisschen von allem tun (oder viel von allem, wenn man Pech hat ).
Tacroy

Antworten:

36

Ein Eimer in englischer Sprache ist ein Gerät zum Halten von Wasser.

In der Software bedeutet dies normalerweise einen Datentyp, der Objekte zusammenfasst.

Der Begriff wird häufig verwendet, wenn es um Hashing-Algorithmen geht , bei denen verschiedene Elemente mit demselben Hash-Code (Hash-Kollision) in denselben "Bucket" verschoben werden. Das heißt, die Objekte werden nach dem Hash gruppiert.

Im Allgemeinen kann eine Hash-Funktion mehrere verschiedene Schlüssel demselben Index zuordnen. Daher ist jeder Slot einer Hash-Tabelle (implizit oder explizit) einem Satz von Datensätzen zugeordnet und nicht einem einzelnen Datensatz. Aus diesem Grund wird jeder Slot einer Hash-Tabelle häufig als Bucket bezeichnet, und Hash-Werte werden auch als Bucket-Indizes bezeichnet.

Informell gesehen habe ich den Begriff mit Wörterbüchern verwendet, deren Wert (nicht Schlüssel) eine Sammlung von Elementen ist.


Wikipedia hat eine Seite, die dem Begriff " Computing" gewidmet ist :

In der Datenverarbeitung kann der Begriff Bucket mehrere Bedeutungen haben. Es wird sowohl als Live-Metapher als auch in einigen Fachgebieten als allgemein anerkannter Fachbegriff verwendet. Ein Bucket ist in der Regel eine Art Datenpuffer oder eine Art Dokument, in dem Daten in Regionen unterteilt sind.

Oded
quelle
6
+1 du hast mich geschlagen! Ich möchte hinzufügen, dass der Zweck des Hash-Algorithmus, Elemente in Buckets zu sortieren, das schnellere Abrufen und Sortieren großer Sammlungen ermöglicht. Wenn ich 20 Artikel nach einem bestimmten Artikel durchsuchen möchte, ist es ineffizient, jeweils einen Artikel nach ID zu suchen. Besser wäre es, wenn eine Sammlung Elemente mit demselben Hash in einem Eimer aufbewahrt , sodass nur wenige Elemente im Eimer und nicht in der gesamten Liste gesucht werden müssen.
maple_shaft
@maple_shaft - Guter Punkt zur Verwendung von Eimern beim Hashing. Ich dachte nicht, dass es für die Frage relevant ist :)
Oded
0

Vielleicht ist es ein Hinweis auf "Bit Bucket". Dort verschieben sich die Bits, die um ein Byte verschoben werden, nach links und rechts.

Jon Strayer
quelle