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)); }
相关文章推荐
- List、Map、Set的理解(LinkedList和ArrayList、Vector和ArrayList、HashMap和HashTable和HashSet区别与使用)
- java(20130802)Set:HashSet TreeSet、Map(接口):HashTable Hashmap、比较list set map
- List、Map、Set的理解(LinkedList和ArrayList、Vector和ArrayList、HashMap和HashTable和HashSet区别与使用)
- HashTable,HashMap,LIST,SET,MAP的区别和联系
- java 集合类 map set list arraylist hashmap hashtable
- Hashtable和HashMap和Map和List和Set的区别?
- STL中hashtable,hashset,hashmap,set,map,multiset和multimap的区别
- stl vector、红黑树、set、multiset、map、multimap、迭代器失效、哈希表(hash_table)、hashset、hashmap、unordered_map、list
- HashTable,HashMap,LIST,SET,MAP的区别和联系
- java集合: List、Set、Map总结 + HashMap/Hashtable 差别
- Set、List、Map以及Arraylist、LikedList、Vector、Hashtable、HashMap的介绍
- List、Set、Map集合存放null解析及HashMap、Hashtable异同点解析
- HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map
- Java Collection: List、Set、 Map、 HashMap、 Hashtable、 Vector
- HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map
- java中 HashMap和Hashtable,list、set和map 的区别
- 黑马程序员_学习笔记:10) 集合框架2:Set(HashSet、TreeSet)、Map(Hashtable、HashMap、TreeMap)、Collections、Arrays
- hashtable,hashset,hashmap,set,map,multimap,multiset
- java集合: List、Set、Map总结 + HashMap/Hashtable 区别
- Collection:List、Set和Map:HashMap、HashTable区别