A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

集合框架分为两大派系:
|--单列集合 Coloection
        |-- List 有序,可重复,元素都有索引值
                |-- ArrayList         底层是数组数据结构,查询速度快,增删稍慢,线程不安全的
                |-- LinkedList        底层是链表数据结构,增删速度快,查询稍慢,线程不安全的
                |-- Vector            底层是数组数据结构,查询相对于ArrayList慢,增删相对于LinkedList慢,线程安全的,jdk1。0时出现,后来被ArrayList替代
        |-- Set  无序,不可重复,因为底层是封装的一个Map集合,它使用了Map的key,丢弃了Map的vlaue,所以必须保证元素的唯一性。
                |-- HashSet   底层是哈希表数据结构,线程不安全的,无序高效,必须保证元素的唯一性,依赖于hashCode()和equals()方法
         |-- LinkedHashSet 是存取有序的,底层是链表数据结构,元素唯一的原理和HashSet一样
                |-- TreeSet   底层是二叉树数据结构,线程不安全的,可以对存入的数据进行排序,但是必须保证元素的唯一性,否则会导致元素覆盖
                     要使用TreeSet集合对元素进行排序,前提是必须让元素具备可比性,有两种方式:
                                (1) 让元素自身具备比较性,也就是让元素实现Comparable接口并覆盖compareTo()方法来指定比较规则
                                (2) 如果元素自身不具备比较性或者具备的比较性不是所需要的,我们可以定义一个比较器,也就是实现Comparator接口并覆盖compare()                                                                方法来指定比较规则,通过TreeSet的构造方法传递给集合即可。
|--双列集合 Map
        |-- HashMap   底层是哈希表数据结构,线程不安全的,可以存储null键null值,数据是以键值对的形式存储的,键和值之间存在着映射关系。
        |-- Hashtable 底层是哈希表数据结构,线程安全的,不可以存储null键null值,jdk1。0时出现,后来被HashMap替代
        |-- TreeMap   底层是是二叉树数据结构,线程不安全的,可以对集合中的key进行排序,排序方式和TreeSet相同

|-- Iterator迭代器:要遍历集合,则需要使用到Iterator接口,也就是迭代器,调用集合的一个iterator方法返回的就是一个Iterator迭代器,通过该迭代器的hasNext()和next()方法        就可以循环得到集合中的每一个元素。foreach循环底层也是使用迭代器实现的。
        |-- List集合特有的遍历方式:普通for循环集合get(index)和size()方法实现遍历。另外List集合还有ListIterator可以实现向前遍历,前提是先向后遍历过。
        |-- Map集合本身是没有迭代器的,要想迭代该集合中的元素有两种方式:
        (1)调用该集合的keySet方法返回的是集合中所有的key的Set集合,再使用Set集合的迭代器对返回的Set集合进行迭代,再通过Map集合的get(key)方法获取key对应        的value值
        (2)调用该集合的entrySet方法返回的是Map集合中键和值的眏射关系,数据类型为Map。Entry,在迭代返回的Set集合获取每一个键和值的眏射关系,在调用Map。Entry        的getKey()和getValue()方法回去对应的键和值

1 个回复

倒序浏览
小五哥 来自手机 中级黑马 2016-1-4 00:57:45
沙发
不会,路过打个酱油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马