帮我用java封装一个MapList
时间: 2024-05-12 22:19:40 浏览: 11
以下是一个简单的Java封装MapList的示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapList<K, V> {
private Map<K, List<V>> map;
public MapList() {
this.map = new HashMap<>();
}
public void put(K key, V value) {
if (!map.containsKey(key)) {
map.put(key, new ArrayList<>());
}
map.get(key).add(value);
}
public List<V> get(K key) {
return map.get(key);
}
public boolean containsKey(K key) {
return map.containsKey(key);
}
public boolean containsValue(K key, V value) {
if (!map.containsKey(key)) {
return false;
}
return map.get(key).contains(value);
}
public boolean remove(K key, V value) {
if (!map.containsKey(key)) {
return false;
}
return map.get(key).remove(value);
}
public void clear() {
map.clear();
}
public int size() {
return map.size();
}
public boolean isEmpty() {
return map.isEmpty();
}
}
```
这个MapList类是一个泛型类,可以用于存储任意类型的键和值。它使用了Java的Map和List数据结构来实现,可以存储多个值并且保持它们的顺序。
这个类包含了以下方法:
- put(K key, V value):将一个键值对放入MapList中,如果该键还不存在,则创建一个新的List来存储值。
- get(K key):获取指定键对应的所有值。
- containsKey(K key):判断MapList中是否包含指定的键。
- containsValue(K key, V value):判断MapList中指定键的值是否包含指定的值。
- remove(K key, V value):从MapList中删除指定键的指定值。
- clear():清空MapList中的所有键值对。
- size():获取MapList中包含的键值对数。
- isEmpty():判断MapList是否为空。