创建一个以元组为键的哈希表

5 java

我正在尝试实现一个使用整数元组作为键的HashTable。到目前为止,我所做的是:

import java.util.*; 

    public class Hash_Table_Demo { 
        public static void main(String[] args) 
        {           
            Hashtable<Integer, String> marks =  
                      new Hashtable<Integer, String>(); 

            marks.put(33,"test");                                 

            System.out.println(marks.get(33));                           
        } 
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我仅针对整数而不是对实现了这一点。怎么办呢?

Joa*_*son 4

更新后的版本

为了避免对 JavaFX 的依赖,我们可以为元组创建一个简单的泛型类

class Tuple<Value> {
    Value first;
    Value second;

    Tuple(Value first, Value second) {
        this.first = first;
        this.second = second;
    }
}
Run Code Online (Sandbox Code Playgroud)

并且还要避免使用Hashtable并替换为例如。HashMap

Map<Tuple<Integer>, String> map = new HashMap();
map.put(new Tuple(1,2), "Hello");
map.put(new Tuple(3,3), "World");
Run Code Online (Sandbox Code Playgroud)

旧版

使用现有的Pair类,您可以定义哈希表,例如

Map<Pair<Integer, Integer>, String> marks = new Hashtable<>(); 
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的 Pair 实例作为 key

marks.put(new Pair(1,33),"test");                                 

System.out.println(marks.get(new Pair(1,33)));     
Run Code Online (Sandbox Code Playgroud)

  • 不,没有真正“好的”标准 Pair 类。**仅**为其 Pair 类添加对 JavaFX 的依赖绝对是不好的做法。如果可能的话,请将 JavaFX 视为您“避免”的一种责任。 (2认同)