我是java的新手并且有一个问题
myBooks = new ArrayList<HashMap<String,Object>>();
什么是HashMap
以及我们<
>
使用ArrayList
{{1}}时的含义是什么?
答案 0 :(得分:7)
HashMap
和ArrayList
都可以被视为PHP中的数组。 ArrayList
由数字编制索引,HashMap
是键值对的集合 - PHP不区分这两种情况。
这个特殊的声明说有一个ArrayList
(数字索引数组),它的所有元素都是HashMap
类型。对于每个HashMap
,它是键/值对的集合,键的类型为String
,值的类型为Object
。
答案 1 :(得分:6)
它表示Java中的泛型类型。例如,如果您使用ArrayList
如下
myBooks = new ArrayList<String>();
表示存储在ArrayList myBook
中的内容将是Java中可用的String类型。
在以下声明中
myBooks = new ArrayList<HashMap<String,Object>>();
ArrayList持有一个HasMap,键的类型为String,类型为Objects。
同样,您可以使用泛型类型Collection
,List
,HashTable
等,并且应始终与泛型类型一起使用,因为它们可以包含任何类型的值。
,例如
Collection<String> c=new ArrayList<String>();
List<String>list=new ArrayList<String>();
Hashtable<String, String> h = new Hashtable<String, String>();
你可以简单地定义它们而没有遗传类型如下。
Collection c=new ArrayList();
List list=new ArrayList();
Hashtable h=new Hashtable();
在这种情况下,编译器根本不会抱怨,但总是优先使用泛型。
答案 2 :(得分:4)
这是Java泛型的一个例子。
List
或Map
或Set
等数据结构可以容纳任何类型的对象。当您使用泛型时,您可以准确地告诉编译器数据结构所持有的对象类型。
在您的情况下,您有List
Maps
。 Map
有String
个密钥和Object
个值。
答案 3 :(得分:3)