黑马程序员_Java集合总结(三)

来源:互联网 发布:淘宝的古着衣服能穿吗 编辑:程序博客网 时间:2024/04/30 12:41

---------------------- android培训、java培训、期待与您交流! ----------------------

一、Map集合


特征:
Map存储的是键值对
Map存储元素使用put方法,Collection使用add方法
Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
Map集合中键要保证唯一性


Map集合常用类
     Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
     HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
     TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。


map集合的两种取出方式:
1,Set<k> keySet:
    将map中所有的键存入到Set集合。因为set具备迭代器。
    所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。        
    Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。
2,Set<Map.Entry<k,v>> entrySet:
    将map集合中的映射关系存入到了set集合中,而这个关系的数据        类型就是:Map.Entry
    Entry其实就是Map中的一个static内部接口。
    为什么要定义在内部呢?
    因为只有有了Map集合,有了键值对,才会有键值的映射关系。
    属于Map集合中的一个内部事物,该事物在直接访问Map集合中的        元素。
练习:自定义一个可以同时存放三元素的Map集合。



二、集合框架中的工具类
 
Collections:集合框架的工具类。里面定义的都是静态方法。

Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
        它有两个常用的子接口,
        List:对元素都有定义索引。有序的。可以重复元素。
        Set:不可以重复元素。无序。

Collections是集合框架中的一个工具类。该类中的方法都是静态的
        提供的方法中有可以对list集合进行排序,二分查找等方法。
        通常常用的集合都是线程不安全的。因为要提高效率。
        如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
 
Arrays:用于操作数组的工具类。
里面都是静态方法。
练习:  1、将数组转成List集合
    2、对数组进行排序
    3、对数组进行二分查找
   把数组变成list集合的好处
    可以使用集合的思想和方法来操作数组中的元素。
   注意:将数组变成集合,不可以使用集合的增删方法。
    因为数组的长度是固定。
    如果你增删。那么会反生UnsupportedOperationException


三、新增for语句
 
Collection在JDK1.5后出现的父接口Iterable就是提供了这个for语句。
 
格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
    
}
高级for和迭代器的区别?
对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

---------------------- android培训、java培训、期待与您交流! ----------------------