Java集合笔记

一、采用接口和实现分离的设计方法

同一个数据结构的具体实现可以不同,但是对外必须提供统一的接口。

二、集合接口和迭代器接口

Collection:

(1)超接口Iterable

Iterator:

(1)编译器将for each循环翻译为带有迭代器的循环(for each循坏可以与实现Iterable接口的对象工作)

(2)可以认为java的迭代器位于两个元素之间,代用next()方法会越过一个元素并返回越过元素的引用

(3)remove()方法会删除之前调用next()时返回的元素(不调next直接调remove会抛出异常)

三、集合框架

collection

         List(有序、可重复)

                   ArrayList(多个线程共同访问时可使用Vector)

                   LinkedList(可使用ListIterator遍历)

         Set(无序、不可重复)

                   TreeSet(会对数据进行排序)

                   HashSet

         Queue

map

                  HashMap

                  TreeMap


tips:有序是指存储的顺序和访问的顺序相同

散列表(哈希表) == HashSet

(1)保证自定义对象的equals()方法和hashCode()方法兼容啊a.equals(b)为true则a和b的hashCode相等

(2)存储结构:一个数组,每个位置后面挂着一个链表,hashCoed相同时挂到链表上(就是数据结结构上解决哈希表冲突的方法之一)

(3)再散列:根据装填因子决定何时进行再散列(default=0.75)

树 == TreeSet

(1)对其中的数据进行排序,排序方法可实现Comparable接口进行自定义或通过Comparator给出


映射表(存储键值对)

(1)SetkeySet()获取键的集合

(2)Collection values()

(3)Set >entrySet()

(4)IdentityHashMap()使用==好来比较作为键的对象

你可能感兴趣的:(Java集合笔记)