Apache Commons Collections库中没有直接提供ListValuedTreeMap类。但是,您可以使用MultiValuedMap接口和ArrayListValuedHashMap实现类来达到相同的效果。
MultiValuedMap接口允许一个键关联多个值。ArrayListValuedHashMap是MultiValuedMap接口的一个实现类,它使用ArrayList来保存多个值。
下面是一个使用ArrayListValuedHashMap来模拟ListValuedTreeMap的示例代码:
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
public class Example {
public static void main(String[] args) {
MultiValuedMap map = new ArrayListValuedHashMap<>();
// 添加键值对
map.put("key1", 1);
map.put("key1", 2);
map.put("key2", 3);
map.put("key3", 4);
// 获取指定键的值列表
System.out.println(map.get("key1")); // 输出: [1, 2]
// 遍历所有键值对
for (String key : map.keySet()) {
for (Integer value : map.get(key)) {
System.out.println(key + " -> " + value);
}
}
}
}
在这个示例中,我们使用ArrayListValuedHashMap创建了一个MultiValuedMap对象。然后,我们通过put方法向map中添加键值对。注意,当我们向map中添加相同键的多个值时,这些值会被保存在一个ArrayList中。最后,我们通过get方法获取指定键的值列表,并使用两个嵌套的循环遍历所有的键值对。
请确保在您的项目中包含了Apache Commons Collections库的依赖。在Maven项目中,您可以将以下依赖项添加到您的pom.xml文件中:
org.apache.commons
commons-collections4
4.4
这是Apache Commons Collections库的最新版本,您可以根据需要选择其他版本。