[黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)
---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------
0. 集合框架按其所实现的接口, 大致能分成Collection系 和Map系.
1. Map集合: 存储键值对, 且要保证键的唯一性.
2. Map与Collection的区别:
- Map与Collection在集合框架中属并列存在
 - Map存储的是键值对
 - Map存储元素使用put方法,Collection使用add方法
 - Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
 - Map集合中键要保证唯一性
 - * 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集合. 
对数组进行排序.
对数组进行二分查找.
等.. 
- 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)等, 这个有一系列的... 
- 格式: 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);
}
}
} 
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
		
Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...
 - 黑马程序员——JAVA基础之Map集合
		
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
 - 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具
		
Java学习路线图引言: 黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...
 - 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
		
------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类: Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...
 - 黑马程序员:Java基础总结----泛型(高级)
		
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
 - 黑马程序员:轻松精通Java学习路线连载1-基础篇!
		
编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...
 - 课程10:《黑马程序员_Hibernate开发资料》视频目录--没有细看
		
老师很厉害,讲得蛮详细的 \Hibernate视频教程\01_黑马程序员_Hibernate教程__Hibernate入门基础.avi; \Hibernate视频教程\02_黑马程序员_Hiberna ...
 - 课程4:黑马程序员_spring2.5视频教程--视频列表
		
\黑马程序员_spring2.5视频教程\01Struts相关基础理论介绍.mp4; \黑马程序员_spring2.5视频教程\02搭建struts开发环境.mp4; \黑马程序员_spring2.5 ...
 - 2016年8月17日 内省(1)18_黑马程序员_使用beanUtils操纵javabean
		
8.内省(1):18_黑马程序员_使用beanUtils操纵javabean 1.导入两个包: 2.调用静态方法. 9.泛型 map.entrySet() :取出map集合的键值对组成一个set集合. ...
 
随机推荐
- sass玩转颜色总结笔记
			
变量: $color:#f00; 1.变浅和加深颜色,sass使用HSL标准来变浅或加深颜色 lighten($color,10%); darken($color,30%); ...
 - Java 开源博客——B3log Solo 0.6.7 正式版公布了!
			
Java 开源博客 -- B3log Solo 0.6.7 正式版公布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也很欢迎大家參与进来 :-) 特性 基于标签的文章分类 P ...
 - Python获取当地的天气和随意城市的天气
			
先从中国天气网得到数据('http://www.weather.com.cn/data/cityinfo/'+城市编码),每一个城市都有各自的编码,怎样得到用户所在地的城市编码呢?用一个网页就是专门干 ...
 - HDU 3336 Count the string KMP
			
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3336 如果你是ACMer,那么请点击看下 题意:求每一个的前缀在母串中出现次数的总和. AC代码: # ...
 - 自己用js写的两个日历控件
			
前一阵写了两个日历控件,做了简单的封装,发出来共朋友们参考. 第一个日历控件,条状的日历. (使用方法:调用initBarTime(id,evn),第一个参数是要渲染div的id,第二个参数是点击日期 ...
 - 一、Nginx配置文件详解
			
配置文件介绍 主要有两部分:分别是 main:主体部分 http{}:虚拟主机配置部分 配置指令主要以分号结尾:配置语法:directive value1 [value2 ....] 支持使用的变量 ...
 - HDOJ 3047 带权并查集
			
解题思路转自: http://blog.csdn.net/azheng51714/article/details/8500459 http://blog.csdn.net/acresume/artic ...
 - java 泛型详解(普通泛型、 通配符、 泛型接口)
			
java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...
 - CentOS6使用第三方yum源安装更多rpm软件包
			
引言: CentOS自带的yum源中rpm包数量有限,很多时候找不到我们需的软件包,(例如:要安装网络连接查看软件iftop,默认设置下无法使用yum命令安装),下面教大家在CentOS ...
 - 【leetcode】Single Number II
			
int singleNumber(int A[], int n) { int once = 0; int twice = 0; int three = 0; for (int i = 0; i < ...