所以我确定这是一个noob问题,但在阅读关于Android编程的帖子时,我遇到了这样的一行:
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
我的问题是<Map<String, String>>
是什么意思?我试过谷歌搜索它,但我得到的是有关Java运算符的列表。
答案 0 :(得分:6)
这是因为List
和Map
使用泛型。因此,您的List
是一个Map
列表,Map
是String
类型,密钥类型为String
,值类型为{{1}}
答案 1 :(得分:2)
Map<type, type>
是一个集合,它将第一种类型中的一种与第二种类型之一相关联。所以Map<String, String>
将String与另一个String相关联。这是generics的一个实例。 List<Map<String, String>>
表示您有一个包含Map
个String
的列表,其中包含两个{{1}}
答案 2 :(得分:1)
这是使用Java Generics的声明。您应该将尖括号解析为数学运算符,而不是围绕类型的一种奇特的括号。在函数中,您将特定类型的实例作为参数传递;在泛型中,您将实际类型作为参数传递。
让我们从内到外工作。第一部分是
Map<String, String>
这意味着“Map
的实例,其密钥为String
,其值为String
s。”例如,这可能会将人们的姓名与其驾驶执照号码相关联。然后我们将它们用作
List<Map<String, String>>
这是List
个元素,其中每个元素都是从Map
个键到String
个值的String
。例如,这可能是不同状态的不同名称到驱动程序的许可证ID的列表。
你应该阅读泛型;他们一直在Java中出现,是一个非常方便的工具。当你继续Java之旅时,你会看到它们很多,而且它们是你编程工具库中的宝贵工具。
答案 3 :(得分:0)
一个Map,其键是字符串,其值为字符串。
答案 4 :(得分:0)
将<Map<String, String>>
视为“表格”
|------------|------------|
| "Key" | "Key" | <-- String
|------------|------------|
| "Value" | "Value" | <-- String
|------------|------------|