java - 如何查找 MultivaluedMap 中键的长度/大小?

标签 java jakarta-ee collections hashmap multivalue

MultivaluedMap map= new MultivaluedMapImpl();
map.add("Accept-Encoding", "compress;q=0.5");
map.add("Accept-Encoding", "gzip;q=1.1");
map.add("Accept-Encoding", "gzip;q=1.2");
map.add("Accept-Encoding", "gzip;q=1.3");

如何找到“Accept-Encoding”键的大小?

最佳答案

MultivaluedMap<K, V>实现Map<K,List<V>>所以

((Map<String,List<String>>)map).get("Accept-Encoding").size();

现在我看到您使用非通用版本(这不是一个好主意):

Map tmp = map instanceof Map ? (Map) map : new HashMap();
// because you don't use generic you should get value as an Object instance
Object value = tmp.get("Accept-Encoding");
// by default we assume that there the value is not a List instance
int size = 0;    

// for security we check that the value instance implements List interface
if (value instanceof List) {
    // we check size of that list
    size = ((List) value).size();
}

简短版本(且未经检查):

((List) ((Map) map).get("Accept-Encoding")).size();

您应该明白为什么使用通用版本比原始版本更好。

关于java - 如何查找 MultivaluedMap 中键的长度/大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726072/

相关文章:

java - 具有可选字段的不可变值类的 Jackson 序列化

java - 警告 : [serial] serializable class SomeClass has no definition of serialVersionUID

java - SWT FileDialog 中的 PathMustExists 和 FileMustExists

java - 与 Bash 相比,Java 中的语言环境区分大小写不一致

java - 将 Blob 从 Java 存储到 BD : Data size bigger than max size for this type when is clearly not

java - 从 HashMultiMap 获取有序数组

.net - 集合内存不足

java - 有没有办法将列表中的所有内部对象提取到新列表

jakarta-ee - 如何在每次发出 HTTP 请求时获取用户日期

java - 如何在 Tomcat 之外运行 Tomcat-Spring/Struts 2-Quartz 任务?