(集合【Map、可变参数、Collections】)

来源:互联网 发布:知乎网站 源码 编辑:程序博客网 时间:2024/06/05 04:32
Map集合,存储键值对的集合
    键和值对应
    用作键的对象保证唯一性
    一个键只能对应一个值
Map接口的子类HashMap
Map<k,v>
K,作用键的数据类型
v,作用值的数据类型
Map接口的方法

V put(k,v)键值对存储到集合
put方法返回值,一般情况向返回null
如果存储了重复的键,原来的值被覆盖put返回之前被覆盖的值

V get(K)根据键获取
键具有唯一性
集合中没有这个键
1.抛出异常
2.引用类型返回null
3.基本类型返回负数

V remove(K) 移除集合中的键值对
比返回被移除前的值
如果没有这个值,返回null

Map集合的遍历
    Map集合中的所有的键,存储到Set集合
    迭代Set集合,拿到的是Map的所有的键
步骤:
     Map中的键,存储到Set集合,Map集合的方法keySet()
     迭代器遍历Set集合,取出Set集合中元素
     Set的元素是Map集合的键
     Map的方法get,找到值

增强for 无法直接遍历Map

对象描述键值对对应关系对象
接口Entry的实现类就是对应关系对象
接口方法:
    getKey()
    getValue()
集合中键值对的映射关系遍历
Entry接口的实现类,有三个,实现类存储带Set集合
Map接口的方法entrySet()

迭代器
取出Set集合的元素,取出的是键值对的映射关系对象


Map接口的实现类HashMap
自身特点:
    底层数据 是哈希表
    无序的集合
    保证键的唯一性,存储到键的对象,重写hashcode,equals
    允许存储null,null键
    线程不安全,允许速度快

HashMap集合,存储键值对
键是字符串,值是对象

Map接口实现类HashMap的子类LinkedHashMap
    底层哈希表实现,双向链表
    有序的集合,元素存储和去除的顺序一致的
    线程不安全集合,运行速度快

Map接口的实现类Hashtable
    底层哈希表,保证键的唯一性
    不允许存储null,null键
    线程安全,运行速度慢
被更先进的HashMap取代
但是:
    Hashtable有个子类Properties,依然活跃在开发舞台


Map接口的实现类Hashtable子类Properties
    集合本质是哈希表,Map集合的代码,全通用
集合的特点:
    没有泛型的集合,键值对数据类型固定为String类型
    和Io流配合使用
    存储键值对的方法:setProperty(String Key,String value) 看做是Map的方法put
    根据键获取值的方法:String getProperty(String Key)看做是Map的方法get
    集合的键存储Set方法:Set<String> stringPropertyNames()看做是Map的方法KeySet
    流中健在键值对到集合:load load(输入流),传递new FileReader
    意义:流中读取文件中的键值对,存储到集合中
      文件必须携程键值对形式K=V
    遇到#,不读取


JDK1.5版本新特性:
    方法的可变参数
    
    功能要求:
        方法中参数数据类型明确的,但是参数的个数未知的

    可变参数的语法:数据类型...变量名(点就三个不能多不能少)
    可变参数本质是数组
    可以传递任意个数据
    什么也不传递,数组的长度=0
    方法可变参数注意:
        一个方法,只能有一个可变参数
    

java.util.Collections工具类
    静态类:
        shuffle 对集合List,元素随机排列
        sort 对List集合元素升序排列
        binarySearch 二分查找法,折半查找










阅读全文
0 0
原创粉丝点击