您的位置:首页 > 编程语言 > Java开发

List、Map、Set、HashMap、HashSet、Hashtable

2016-10-31 15:40 323 查看

list,set,map区别

list

按对象进入的顺序保存对象,不做排序或编辑

基于ArrayList:

由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢

基于LinkedList:

向List中间插入与删除的开销并不大,随机访问则相对较慢

addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法使得LinkedList可以当作堆栈、队列和双向队列使用

set

每个对象只接受一次,使用自己内部的排序方法

map

每个元素基于key-value存储,不关心添加顺序

containsKey()和containsValue()测试Map中是否包含某个“键”或“值”

如果需要添加元素的顺序,应该使用LinkedHashSet, LinkedHashMap

HashMap

遍历

for each map.entrySet()

Map<String, String> map = new HashMap<String, String>();
for (Entry<String, String> entry : map.entrySet()) {
entry.getKey();
entry.getValue();
}
//既需要key也需要value


显示调用map.entrySet()的集合迭代器

Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
entry.getKey();
entry.getValue();
}


for each map.keySet(),再调用get获取

Map<String, String> map = new HashMap<String, String>();
for (String key : map.keySet()) {
map.get(key);
}
//只是遍历key而无需value的话


for each map.entrySet(),用临时变量保存map.entrySet()

Set<Entry<String, String>> entrySet = map.entrySet();
for (Entry<String, String> entry : entrySet) {
entry.getKey();
entry.getValue();
}


HashSet

遍历

迭代遍历

Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}


for循环遍历

for (String str : set) {
System.out.println(str);
}

//优点还体现在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
}


Hashtable

遍历

for(int i = 0;i<100;i++){
ht.put("key"+i, "value"+i);
}


for(Iterator itr = ht.keySet().iterator(); itr.hasNext();){
String key = (String) itr.next();
String value = (String) ht.get(key);
System.out.println(key+"--"+value);
}


Enumeration e1 = ht.elements();
while (e1.hasMoreElements()) {
System.out.println(e1.nextElement());
}


Enumeration e2 = ht.keys();
while (e2.hasMoreElements()) {
String key = (String) e2.nextElement();
System.out.println(key +"---"+ht.get(key));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hashmap Java
相关文章推荐