LinkedHashMap key是类 如何取alue值
时间: 2023-07-27 13:23:32 浏览: 94
如果 `LinkedHashMap` 的键(key)是一个类的实例,你可以通过传入一个相同类型的实例作为键,来获取对应的值(value)。具体来说,你需要先创建一个与键类型相同的实例,然后将其传给 `get` 方法,即可获取对应的值。下面是一个示例代码:
```java
LinkedHashMap<MyClass, String> map = new LinkedHashMap<>(); // 创建一个 LinkedHashMap 实例
// 向 map 中添加键值对
map.put(new MyClass("value1"), "key1");
map.put(new MyClass("value2"), "key2");
// 从 map 中取出 value
MyClass key = new MyClass("value1"); // 创建一个类型为 MyClass 的实例,作为键
String value = map.get(key); // 根据键 key 取出对应的 value
System.out.println(value); // 输出 value 的值
```
在这个示例中,`MyClass` 是一个自定义的类,它的定义可能类似于下面这样:
```java
public class MyClass {
private String field;
public MyClass(String fieldValue) {
this.field = fieldValue;
}
public String getField() {
return field;
}
// 重写 equals 和 hashCode 方法,以便在 HashMap 中使用该类的实例作为键
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof MyClass)) {
return false;
}
MyClass other = (MyClass) obj;
return Objects.equals(field, other.field);
}
@Override
public int hashCode() {
return Objects.hash(field);
}
}
```
在上面的示例代码中,我们首先创建了一个 `LinkedHashMap` 实例,并向其中添加了两个键值对,键为 `MyClass` 类的实例,值为字符串。然后,我们创建了一个与键类型相同的实例,将其作为键传给 `get` 方法,从 `LinkedHashMap` 中取出了对应的值,并将其输出。注意,为了在 `HashMap` 中使用 `MyClass` 的实例作为键,我们需要重写 `equals` 和 `hashCode` 方法。
阅读全文