Bucket หมายถึงอะไร


17

ฉันพบในรหัสดั้งเดิมคลาสที่ชื่อคือ BucketService

เนื่องจากภาษาอังกฤษไม่ใช่ภาษาแม่ของฉันฉันจึงพยายามแปลมัน แต่มันก็ไม่สมเหตุสมผล

ฉันพบเทอร์มินอลไม่กี่อย่างเช่นการคัดแยกถังเป็นต้น แต่ฉันก็ยังไม่เข้าใจ จริงๆแล้วคำนี้ใช้บ่อยในการเขียนโปรแกรม

ฉันจะเป็นประโยชน์สำหรับคำอธิบายง่ายๆของคำนั้น


1
อย่าตัดสินชั้นเรียนด้วยชื่อของมัน API ใดที่เปิดเผย มันมีสถานะอะไร มีการใช้ / เรียกใช้ / สร้างอินสแตนซ์อย่างไร ดูเหมือนว่าคำตอบที่ถูกต้องสำหรับคำถามอย่างคุณจะเป็นMu
gnat

2
โดยเฉพาะอย่างยิ่งกับชื่อที่ไม่ใช่ตัวอักษรเช่น "BucketService" - ดูเหมือนว่า "UtilityManager" หรือ "ThingDoer" ด้วยชื่อที่คลุมเครือเช่นนั้นตัวเลือกเดียวของคุณคือดูรหัส น่าเสียดายที่คลาสที่มีชื่อที่คลุมเครือมักทำทุกอย่างเล็กน้อย (หรือทุกอย่างถ้าคุณโชคร้าย)
Tacroy

คำตอบ:


36

ถังในภาษาอังกฤษเป็นอุปกรณ์สำหรับการถือครองน้ำ

เมื่อใช้ในซอฟต์แวร์ปกติแล้วหมายถึงชนิดข้อมูลที่จัดกลุ่มวัตถุเข้าด้วยกัน

คำนี้มักใช้เมื่อพูดถึงอัลกอริธึมการแฮชซึ่งรายการต่าง ๆ ที่มีรหัสแฮชเดียวกัน (การชนกันของแฮช) ไปที่ "bucket" เดียวกัน ความหมายวัตถุจะถูกจัดกลุ่มตามแฮช

โดยทั่วไปฟังก์ชั่นการแฮชอาจแมปปุ่มที่แตกต่างกันหลายอันเข้ากับดัชนีเดียวกัน ดังนั้นแต่ละสล็อตของตารางแฮชจะสัมพันธ์กับชุดของเร็กคอร์ด (โดยปริยายหรือโดยชัดแจ้ง) แทนที่จะเป็นเร็กคอร์ดเดียว ด้วยเหตุนี้แต่ละสล็อตของตารางแฮชจึงมักจะเรียกว่าที่ฝากข้อมูลและค่าแฮชก็จะเรียกว่าดัชนีที่เก็บข้อมูล

ฉันเห็นคำที่ใช้กับพจนานุกรมที่มีค่า (ไม่ใช่คีย์) คือชุดของรายการ


Wikipedia มีหน้าสำหรับคำที่ใช้ในการคำนวณ - Bucket (Computing) :

ในการคำนวณคำว่า bucket สามารถมีความหมายได้หลายอย่าง มันถูกใช้ทั้งเป็นคำอุปมาสดและเป็นคำศัพท์ทางเทคนิคที่ยอมรับกันโดยทั่วไปในบางพื้นที่ ที่ฝากข้อมูลส่วนใหญ่เป็นชนิดของบัฟเฟอร์ข้อมูลหรือชนิดของเอกสารที่ข้อมูลถูกแบ่งออกเป็นภูมิภาค


6
+1 คุณชนะฉันมัน! ฉันต้องการเพิ่มว่าวัตถุประสงค์ขององค์ประกอบการจัดเรียงอัลกอริธึมแฮชลงในที่เก็บข้อมูลช่วยให้สามารถเรียกค้นและเรียงลำดับคอลเลกชันขนาดใหญ่ได้เร็ว หากฉันต้องการค้นหา 20 รายการสำหรับรายการเฉพาะวิธีที่ไม่มีประสิทธิภาพคือการค้นหาทีละรายการด้วย ID วิธีที่ดีกว่าคือการรวบรวมชุดเพื่อเก็บรายการที่มีแฮชเดียวกันไว้ในที่เก็บข้อมูลดังนั้นมีเพียงไม่กี่รายการที่ต้องค้นหาในที่เก็บข้อมูลแทนที่จะเป็นรายการทั้งหมด
maple_shaft

@maple_shaft - จุดที่ดีเกี่ยวกับการใช้ถังใน hashing ผมไม่ได้คิดว่ามันเป็นที่เกี่ยวข้องกับคำถามที่ว่า :)
Oded

0

อาจเป็นการอ้างอิงถึง 'bit bucket' นั่นคือสิ่งที่บิตที่เลื่อนออกไปหนึ่งไบต์เลื่อนไปทางซ้ายและขวา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.