在java中map和hashmap有什么区别 java中怎么遍历hashmap?
java中怎么遍历hashmap?
一个。
HashMapstaffnewHashMap()
添加关键字值对,自己写。
横贯
Setentriesstaff.entrySet()
()
while(iter.hasNext())
{
地图。Entryentry(地图。条目)()
()什么关键词?
()获取值
}
两个。
MapmapnewHashMap()
for(Iteratoritermap.entrySet()。iterator()iter.hasNext()){
地图。入口入口(地图。entry)()//映射。entry还取出键值对。
()
()
}
三个。
MapmapnewHashMap()
对于(()。iterator()iter.hasNext()){
()
(关键)
}
迭代器是迭代器。
对于keySet,实际上遍历了两次,一次是到迭代器,一次是从hashmap中取出key的值。
Entryset只是第一次遍历它,他将键和值都放在条目中,所以它 就快到了。
对于我们这些做web的人来说,可能并不是所有的人都使用vo对象或者表单来封装信息,所以当我们使用hashmap的时候,我们的内存就被上面的对象填满了。因此,使用entryset的遍历性能将得到提高。
Hashmap用的很多,比如导入信息的时候,因为大部分导入的信息都需要判断是否有重复信息,所以可以用containsK
arraylist和linkedlist的区别?
ArrayList和LinkedList
共性:ArrayList和LinkedList都是List接口的实现类,所以都实现了List所有未实现的方法,只是实现方法不同。
区别:List接口的实现不同。
ArrayList以数组的形式实现了List接口,所以使用ArrayList来实现快速随机获取对象的要求会更高效。
LinkedList使用链表实现列表接口,所以在执行插入和移除动作时比ArrayList更高效。适用于实现堆栈和队列。
哈希表和哈希表
共性:都实现了地图接口。
差异:
(1)继承的父类不同
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。
(2)线程安全性不同
Hashtable方法是同步,而HashMap中的方法默认是不同步的。
(3)提供contains方法
HashMap去掉了Hashtable的contains方法,改成了containsValue和containsKey,因为contains方法容易被误解。
Hashtable保留了三种方法:contains、containsValue和containsKey,其中contains和containsValue的作用相同。
(4)4)键和值是否允许空值。
在哈希表中,键和值都不允许为空值。在HashMap中,null可以作为一个键,而且这样的键只有一个;一个或多个键可以有空值。
(5)两种遍历模式的内部实现不同。
HashMap使用迭代器;;Hashtable使用迭代器和枚举。
(6)哈希值不同
哈希值的用法不同。HashTable直接使用对象的hashCode。HashMap重新计算哈希值。
(7)内部实现使用的数组初始化和扩展方法不同。
哈希表 s在没有指定容量的情况下默认容量是11,增加的是old * 2 ^ 1;;而HashMap是16,Hashtable不要求底层数组的容量必须是2的整数次方,而HashMap要求必须是2的整数次方。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。