黑马程序员_集合知识2
来源:互联网 发布:淘宝服装宝贝描述素材 编辑:程序博客网 时间:2024/04/26 23:48
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
Map集合:
HashTable:
底层数据结构是哈希表,不可存入null键和null值。同步的Properties继承自HashTable,可保存在流中或从流中加载,是集合和IO流的结合产物
HashMap:
底层数据结构是哈希表;允许使用null键和null值,不同步,效率高
TreeMap:
底层数据结构是二叉树,不同步,可排序与Set很像,Set底层就是使用了Map集合
方法:
V put(K key, V value) ; void putAll(Map m)
void clear(); V remove(Object key)
boolean containsKey(Object key); containsValue(Object key); isEmpty()
V get(Object key); int size();Collection<V> values()
Set<K> keySet(); Set<Map.Entry<K,V>> entrySet()
Map集合两种取出方式:
第一种:Set<K>keySet()
取出Map集合中的所有键放于Set集合中,然后再通过键取出对应的值
Set<String> keySet = map.keySet();
Iterator<String> it =keySet.iterator();
while(it.hasNext()){
Stringkey = it.next();
Stringvalue = map.get(key);
//…..
}
第二种:Set<Map.Entry<K,V>>entrySet()
entry是一个比较特殊的对象
取出Map集合中键值对的映射放于Set集合中,然后通过Map集合中的内部接口,然后通过其中的方法取出
Set<Map.Entry<String,String>>entrySet = map.entrySet();
Iterator<Map.Entry<String,String>>it = entrySet.iterator();
While(it.hasNext()){
Map.Entry<String,String>entry = it.next();
Stringkey = entry.getKey();
Stringvalue = entry.getValue();
//……
}
Collection和Map的区别:
Collection:单列集合,一次存一个元素
Map:双列集合,一次存一对集合,两个元素(对象)存在着映射关系
集合工具类:
Collections:操作集合(一般是list集合)的工具类。方法全为静态的
sort(List list);对list集合进行排序; sort(List list, Comparator c) 按指定比较器排序
fill(List list, T obj);将集合元素替换为指定对象;
swap(List list, int I, int j)交换集合指定位置的元素
shuffle(List list); 随机对集合元素排序
reverseOrder() :返回比较器,强行逆转实现Comparable接口的对象自然顺序
reverseOrder(Comparator c):返回比较器,强行逆转指定比较器的顺序
Collection和Collections的区别:
Collections:java.util下的工具类,实现对集合的查找、排序、替换、线程安全化等操作。
Collection:是java.util下的接口,是各种单列集合的父接口,实现此接口的有List和Set集合,存储对象并对其进行操作。
Arrays:
用于操作数组对象的工具类,全为静态方法
asList():将数组转为list集合
好处:可通过list集合的方法操作数组中的元素:
isEmpty()、contains()、indexOf()、set()
弊端:数组长度固定,不可使用集合的增删操作。
如果数组中存储的是基本数据类型,asList会将数组整体作为一个元素存入集合
集合转为数组:Collection.toArray();
好处:限定了对集合中的元素进行增删操作,只需获取元素
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
- 黑马程序员_集合知识2
- 黑马程序员_集合知识
- 黑马程序员_【总结】_集合框架知识梳理2
- 黑马程序员_集合知识总结
- 黑马程序员_集合2
- 黑马程序员_集合2
- 黑马程序员_集合2
- 黑马程序员_集合(2)
- 黑马程序员_集合2
- 黑马程序员_【总结】_集合框架知识梳理1
- 黑马程序员_【总结】_集合框架知识梳理3
- 黑马程序员_日志集合类知识学习
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 黑马程序员_集合
- 泰晤士报2013全球大学声望排行榜TOP100
- ACM 外星人 关于STL map的困惑
- ios 学习之你画我话绘图四 读取pdf (官方代码)
- HDU 4756 次小生成树裸题
- 源文件存放在虚拟机共享目录导致asp.net调试时[没有相关的源行]问题
- 黑马程序员_集合知识2
- iOS开发>>>NSData 与 NSString,Byte数组,UIImage 的相互转换
- hdu3836 最强连通图,trajan算法...
- linux C函数之strdup函数分析
- 黑马程序员_java面向对象
- 闭包使用之两类交互
- iOS开发>>>NSString常用方法
- 打造自己的vim界面--用winmanager合并显示NERDTree和TagList
- ubuntu安装jdk