在Java中,可以使用泛型来实现在单个数据结构中维护来自两种不同类型的值的映射。一种常用的数据结构是HashMap,它可以用于存储键值对。在这种情况下,我们可以使用泛型来指定键的类型和值的类型。
下面是一个示例代码:
import java.util.HashMap;
public class TwoTypeMap<K, V1, V2> {
private HashMap<K, Object> map;
public TwoTypeMap() {
map = new HashMap<>();
}
public void put(K key, V1 value1, V2 value2) {
Object[] values = new Object[]{value1, value2};
map.put(key, values);
}
public V1 getValue1(K key) {
Object[] values = (Object[]) map.get(key);
return (V1) values[0];
}
public V2 getValue2(K key) {
Object[] values = (Object[]) map.get(key);
return (V2) values[1];
}
public static void main(String[] args) {
TwoTypeMap<String, Integer, String> map = new TwoTypeMap<>();
map.put("key1", 10, "value1");
map.put("key2", 20, "value2");
System.out.println(map.getValue1("key1")); // 输出:10
System.out.println(map.getValue2("key2")); // 输出:"value2"
}
}
在这个示例中,我们定义了一个TwoTypeMap
类,它使用泛型K
表示键的类型,V1
表示第一个值的类型,V2
表示第二个值的类型。内部使用HashMap
来存储键值对,值的类型是Object[]
数组,其中第一个元素是V1
类型的值,第二个元素是V2
类型的值。
通过put
方法可以将键和两个值存储到映射中,通过getValue1
和getValue2
方法可以分别获取第一个值和第二个值。
这种方式可以用于在单个数据结构中维护来自两种不同类型的值的映射,适用于需要同时存储多个值的场景,例如存储学生的姓名和年龄、商品的名称和价格等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云