---------------------- 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()方法示例:

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)的更多相关文章

  1. Java笔记(二十四)……集合工具类Collections&Arrays

    Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...

  2. 黑马程序员——JAVA基础之Map集合

    ------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...

  3. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  4. 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换

    ------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类:        Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...

  5. 黑马程序员:Java基础总结----泛型(高级)

    黑马程序员:Java基础总结 泛型(高级)   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...

  6. 黑马程序员:轻松精通Java学习路线连载1-基础篇!

    编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...

  7. 课程10:《黑马程序员_Hibernate开发资料》视频目录--没有细看

    老师很厉害,讲得蛮详细的 \Hibernate视频教程\01_黑马程序员_Hibernate教程__Hibernate入门基础.avi; \Hibernate视频教程\02_黑马程序员_Hiberna ...

  8. 课程4:黑马程序员_spring2.5视频教程--视频列表

    \黑马程序员_spring2.5视频教程\01Struts相关基础理论介绍.mp4; \黑马程序员_spring2.5视频教程\02搭建struts开发环境.mp4; \黑马程序员_spring2.5 ...

  9. 2016年8月17日 内省(1)18_黑马程序员_使用beanUtils操纵javabean

    8.内省(1):18_黑马程序员_使用beanUtils操纵javabean 1.导入两个包: 2.调用静态方法. 9.泛型 map.entrySet() :取出map集合的键值对组成一个set集合. ...

随机推荐

  1. SQLyog 注册码

    用户名: 随意填写 秘钥: ccbfc13e-c31d-42ce-8939-3c7e63ed5417a56ea5da-f30b-4fb1-8a05-95f346a9b20ba0fe8645-3916- ...

  2. Ibatis调用存储过程实现增删改以及分页查询

    1.Ibatis实现增删改操作很简单了,通常我是将某一模块的增删改功能写在一个存储过程里,通过一个标识符去区分执行增加还是修改抑或删除操作. statement: <!-- 存储过程:实现学生的 ...

  3. [转]Permission denied: /.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

    原文链接:http://blog.csdn.net/dyw/article/details/6612497 近日,在Apache2环境下部署Rails3应用时碰到此错误: Permission den ...

  4. 五、Nginx多Server反向代理配置

    Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. server_name的匹配顺序 Nginx中的s ...

  5. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  6. 不可表示的数[x/2] + y + x * y

    前端是时间在庞果网上看到不可表示的数的编程题(如下),我自己也试着解答了一下,写的算法虽然没有没有错,但是跑了一些还只是跑到a8,后来到自己整理一下网上的解答过程,虽然解答写的很清晰,但是有些知识还是 ...

  7. HDURevenge of Segment Tree(第二长的递增子序列)

    HDURevenge of Segment Tree(第二长的递增子序列) 题目链接 题目大意:这题是求第二长的递增子序列. 解题思路:用n^2的算法来求LIS,可是这里还要记录一下最长的那个序列是否 ...

  8. SilkTest Q&A 13

    Q121 :我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误 我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误: " ...

  9. C语言中的enum(枚举)使用方法

    近期在写数据结构的广义表时候用到了这个概念,在学习C语言的时候没有太注意们这里学一下. 我在网上结合了非常多资料,这里自己总结一下. 首先说.JAVA和C++中都有枚举类型. 假设一个变量你须要几种可 ...

  10. 改动导航栏上返回button上的字,比如把back改动为返回

    改动导航栏上返回button上的字,比如把back改动为返回 注意:这个须要在跳转之前到视图控制器中写,而不是在跳转之后到控制器中写 UIBarButtonItem *backIetm = [[UIB ...