Java Hashtable อินเตอร์เฟซ
Hashtable เป็นส่วนหนึ่งของ java.util เดิมเป็นการนำคอนกรีตพจนานุกรม
อย่างไรก็ตาม Java 2 ฟื้นฟู Hashtable ใช้อินเตอร์เฟซแผนที่ดังนั้น Hashtable ถูกรวมในขณะนี้เป็นกรอบการทำงานของคอลเลกชัน มันระดับ HashMap จะคล้ายกันมาก แต่ก็สนับสนุนการประสาน
เหมือนเช่น HashMap, Hashtable ในตารางแฮชในการจัดเก็บคีย์ / คู่ค่า เมื่อใช้ตารางแฮชในการระบุวัตถุเป็นสำคัญและคุณต้องการที่จะเชื่อมโยงกับมูลค่าของพันธบัตร
แล้วที่สำคัญคือการถกและรหัสกัญชาส่งผลให้มีการใช้เป็นดัชนีในการจัดเก็บค่าในตาราง
Hashtable กำหนดสี่คอนสตรัค ประการแรกคือการสร้างเริ่มต้นนี้
Hashtable()
ตัวสร้างที่สองสร้างขนาดตารางแฮชระบุ
Hashtable(int size)
ตัวสร้างที่สามสร้างขนาดที่ระบุของตารางแฮชและระบุสัดส่วนการเติมโดย fillRatio
อัตราการบรรจุจะต้องอยู่ระหว่าง 0.0 และ 1.0 ซึ่งเป็นตัวกำหนดขอบเขตทั้งหมดของตารางแฮชก่อนที่จะปรับขนาด:
Hashtable(int size,float fillRatio)
ตัวสร้างสี่สร้างองค์ประกอบองค์ประกอบ M ในตารางแฮชที่จะเริ่มต้น
ความจุของตารางแฮชถูกตั้งค่าเป็นสองเท่าของ M
Hashtable(Map m)
Hashtable นอกเหนือไปจากวิธีการที่กำหนดไว้ในอินเตอร์เฟซแผนที่ แต่ยังกำหนดวิธีการต่อไปนี้:
เลขที่ | วิธีการรายละเอียด |
---|---|
1 | ถือเป็นโมฆะชัดเจน () ล้าง Hashtable นี้เพื่อที่จะมีคีย์ไม่มี |
2 | โคลนวัตถุ () สร้างสำเนาตื้นของตารางแฮชนี้ |
3 | บูลีนมี (มูลค่าที่ Object) ไม่ว่าจะมีค่าที่เกี่ยวข้องกับการทดสอบคีย์ที่ระบุตาราง mapping นี้ |
4 | containsKey บูลีน (คีย์ Object) ทดสอบว่าวัตถุที่ระบุเป็นกุญแจสำคัญใน Hashtable นี้ |
5 | บูลีน containsValue (ค่า Object) หาก Hashtable นี้แผนที่หนึ่งหรือมากกว่าคีย์ค่านี้ก็จะส่งกลับจริง |
6 | องค์ประกอบการแจงนับ () ส่งกลับค่าตารางแฮชการแจงนับ |
7 | วัตถุที่ได้รับ (คีย์ Object) คืนคีย์ที่ระบุถูกแมปไปค่าถ้าแผนที่นี้มีการทำแผนที่สำหรับคีย์นี้ไม่มีก็จะส่งกลับ null. อีกอย่างเป็นทางการถ้าแผนที่นี้มี (key.equals (k)) จาก K สำคัญกับค่า V แมป แล้ววิธีนี้ส่งกลับ V มิฉะนั้นก็จะส่งกลับ null |
8 | บูลีน isEmpty () ทดสอบว่า Hashtable นี้แผนที่กุญแจที่จะไม่มีค่า |
9 | คีย์การแจงนับ () ผลตอบแทนที่ได้นับกุญแจตารางแฮช |
10 | ใส่วัตถุ (คีย์วัตถุค่าวัตถุ ) คีย์ระบุถูกแมปไปค่าตารางแฮชระบุ |
11 | เป็นโมฆะในรูปแบบใหม่ () เพิ่มความจุของตารางแฮชและการปรับโครงสร้างภายในของตนให้ดีขึ้นรองรับและการเข้าถึงองค์ประกอบของ |
12 | วัตถุลบ (คีย์ Object) ถอดกุญแจออกและความคุ้มค่าที่สอดคล้องกันจากตารางแฮช |
13 | ขนาด int () ส่งกลับจำนวนของปุ่มในตารางแฮชนี้ |
14 | String toString () ส่งกลับแสดงสตริงของวัตถุ Hashtable ในรูปแบบของตัวอักษร ASCII "," (จุลภาคและพื้นที่) แยกออกจากกันในวงเล็บปีกกาและชุดของรายการที่ |
ตัวอย่าง
โปรแกรมต่อไปนี้แสดงให้เห็นถึงโครงสร้างข้อมูลนี้สนับสนุนหลายวิธี:
import java.util.*; public class HashTableDemo { public static void main(String args[]) { // Create a hash map Hashtable balance = new Hashtable(); Enumeration names; String str; double bal; balance.put("Zara", new Double(3434.34)); balance.put("Mahnaz", new Double(123.22)); balance.put("Ayan", new Double(1378.00)); balance.put("Daisy", new Double(99.22)); balance.put("Qadir", new Double(-19.08)); // Show all balances in hash table. names = balance.keys(); while(names.hasMoreElements()) { str = (String) names.nextElement(); System.out.println(str + ": " + balance.get(str)); } System.out.println(); // Deposit 1,000 into Zara's account bal = ((Double)balance.get("Zara")).doubleValue(); balance.put("Zara", new Double(bal+1000)); System.out.println("Zara's new balance: " + balance.get("Zara")); } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
Qadir: -19.08 Zara: 3434.34 Mahnaz: 123.22 Daisy: 99.22 Ayan: 1378.0 Zara's new balance: 4434.34