[黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)
2013-06-21 14:10
387 查看
---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------
0. 集合框架按其所实现的接口, 大致能分成Collection系 和Map系.
1. Map集合: 存储键值对, 且要保证键的唯一性.
2. Map与Collection的区别:
Map与Collection在集合框架中属并列存在
Map存储的是键值对
Map存储元素使用put方法,Collection使用add方法
Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
Map集合中键要保证唯一性
* Map没有迭代器.
3. Map的共性方法:
添加
put(K key, V value)
putAll(Map<? extends K,? extends V> m)
删除
clear()
remove(Object key)
判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
获取
get(Object key)
size()
values()
* Set<Map.Entry<k, v>> entrySet: 将map集合中的映射关系存入到set集合中, 而这个关系的数据类型就是Map.Entry. (entry, 中文"条目"的意思. )
keySet(): 将map中所有的键存入到Set集合. 因为set具备迭代器, 所以可以通过迭代取出所有的键, 然后用get方法取出所有的值.
4. entrySet()方法示例:
5. Map的实现类
|-- Hashtable: 底层是哈希表数据结构. 不能存入null键和null值. 线程安全.
|-- HashMap: 底层是哈希表数据结构. 能存入null键和null值. 线程不安全.
|-- TreeMap: 底层是二叉树数据结构. 线程不安全. 可以用于给map集合中的键经进行排序.
6. * Map与Set很像, 因为, Set底层就是使用了Map集合.
7. TreeMap: 与TreeSet类似, 可以按key进行排序.
8. 工具类java.util.Collections和java.util.Arrays的作用:
Collections: 对集合进行查找.
取出集合中的最值.
对List集合进行排序.
等..
Arrays: 将数组转成List集合.
对数组进行排序.
对数组进行二分查找.
等..
9. Collections的"一些"方法:
public static <T> void fill(List<? super T> list,T obj): 填充. 将list的所有元素改为obj.
reverse(list): 原位反转列表.
* reverseOrder方法返回一个比较器的反序比较器.
* public static <T> Collection<T> synchronizedCollection(Collection<T> c): 返回相应的同步的集合.
public static <T> Set<T> synchronizedSet(Set<T> s)等, 这个有一系列的...
===============下面是JDK1.5新特性=========================
10. 增强for循环: for(集合中元素的类型, 集合){}, 相当于对集合进行遍历.
建议遍历数组时使用传统for, 因为可定义脚标.
11. * 可变参数: 起始就是一种数组参数的简写形式. 不用每次都手动建立数组对象, 只要将要操作的元素作为参数传递即可, 隐式地将这些参数封装成了数组.
格式: void show(int... a){}
可变参数一定要定义在参数列表的最后.
因为是隐式封装成数组的, 所以直接传入个数组也行. 例子:
12. * 静态导入: 例如: import static java.util.Arrays.*; ---->>导入Arrays这个类中的所有静态成员. (有重名时还是要指定所属的对象或类.)
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
0. 集合框架按其所实现的接口, 大致能分成Collection系 和Map系.
1. Map集合: 存储键值对, 且要保证键的唯一性.
2. Map与Collection的区别:
Map与Collection在集合框架中属并列存在
Map存储的是键值对
Map存储元素使用put方法,Collection使用add方法
Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
Map集合中键要保证唯一性
* Map没有迭代器.
3. Map的共性方法:
添加
put(K key, V value)
putAll(Map<? extends K,? extends V> m)
删除
clear()
remove(Object key)
判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
获取
get(Object key)
size()
values()
* Set<Map.Entry<k, v>> entrySet: 将map集合中的映射关系存入到set集合中, 而这个关系的数据类型就是Map.Entry. (entry, 中文"条目"的意思. )
keySet(): 将map中所有的键存入到Set集合. 因为set具备迭代器, 所以可以通过迭代取出所有的键, 然后用get方法取出所有的值.
4. entrySet()方法示例:
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapDemo2 { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("02", "zhangsan2"); map.put("03", "zhangsan3"); map.put("01", "zhangsan1"); map.put("04", "zhangsan4"); Set<Map.Entry<String, String>> entrySet = map.entrySet(); Iterator<Map.Entry<String, String>> it = entrySet.iterator(); while(it.hasNext()) { Map.Entry<String, String> me = it.next(); String key = me.getKey(); String value = me.getValue(); System.out.println(key+":"+value); } } }
5. Map的实现类
|-- Hashtable: 底层是哈希表数据结构. 不能存入null键和null值. 线程安全.
|-- HashMap: 底层是哈希表数据结构. 能存入null键和null值. 线程不安全.
|-- TreeMap: 底层是二叉树数据结构. 线程不安全. 可以用于给map集合中的键经进行排序.
6. * Map与Set很像, 因为, Set底层就是使用了Map集合.
7. TreeMap: 与TreeSet类似, 可以按key进行排序.
8. 工具类java.util.Collections和java.util.Arrays的作用:
Collections: 对集合进行查找.
取出集合中的最值.
对List集合进行排序.
等..
Arrays: 将数组转成List集合.
对数组进行排序.
对数组进行二分查找.
等..
9. Collections的"一些"方法:
public static <T> void fill(List<? super T> list,T obj): 填充. 将list的所有元素改为obj.
reverse(list): 原位反转列表.
* reverseOrder方法返回一个比较器的反序比较器.
* public static <T> Collection<T> synchronizedCollection(Collection<T> c): 返回相应的同步的集合.
public static <T> Set<T> synchronizedSet(Set<T> s)等, 这个有一系列的...
===============下面是JDK1.5新特性=========================
10. 增强for循环: for(集合中元素的类型, 集合){}, 相当于对集合进行遍历.
建议遍历数组时使用传统for, 因为可定义脚标.
11. * 可变参数: 起始就是一种数组参数的简写形式. 不用每次都手动建立数组对象, 只要将要操作的元素作为参数传递即可, 隐式地将这些参数封装成了数组.
格式: void show(int... a){}
可变参数一定要定义在参数列表的最后.
因为是隐式封装成数组的, 所以直接传入个数组也行. 例子:
class Test2 { public static void main(String [] args) { int[] arr = {1,2,3,7}; show(arr); //传个数组 } public static void show(int... a) { for(int x: a) { System.out.println(x); } } }
12. * 静态导入: 例如: import static java.util.Arrays.*; ---->>导入Arrays这个类中的所有静态成员. (有重名时还是要指定所属的对象或类.)
import static java.lang.System.*; //导入System类中的所有静态成员. public class StaticImport extends Object { public static void main(String[] args) { out.println("haha"); }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
相关文章推荐
- 集合框架2——Map系 & 集合工具类(Collections、Arrays)
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 工具类 Collections and Arrays
- 黑马程序员——Java基础--集合框架工具类:Collections、Arrays、其他对象
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员——Java基础---泛型、集合框架工具类:Collections和Arrays、JDK 1.5新特性
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- 黑马程序员---java----集合框架工具类:collections,Arrays和一些类
- 黑马程序员---集合框架工具类Collections,数组工具类Arrays常见方法以及1.5版本新特性(高级for,可变参数和静态导入)
- 黑马程序员——Java语言基础:集合框架(Collection、Map,工具类Collections、Arrays)
- Java基础---泛型、集合框架工具类:collections和Arrays (黑马程序员)
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 16-常用对象API(集合框架-工具类-Collections-其他方法&将非同步集合转成同步集合的方法) 17-常用对象API(集合框架-工具类-Arrays-方法介绍)_20171202
- 黑马程序员——Java之集合框架工具类Collections、Arrays以及Java新特性
- 黑马程序员--泛型、集合框架工具类:collections和Arrays
- Java笔记(二十四)……集合工具类Collections&Arrays
- 泛型、集合框架工具类:collections和Arrays
- 黑马程序员_温习 集合六 (个人笔记)摘要(Collections集合工具类-----Arrays数组工具类-----高级for----可变参数----静态导入)
- 黑马程序员 java基础集合框架之集合工具类Collections
- 黑马程序员----集合工具类(Arrays和Collections)