TreeSet的基本使用方法.java
HashMap的基本使用方法.java
Arraylist,TreeSet,Set,Map
ArrayList
1、存放的是对象的引用,非对象本身。且都是object类型,必要时需要强制转化。
2、底层数据存储采用数组实现。
3、增加的元素个数过程当前的数组大小,则新建原来大小的1.5倍+1的数组来存储。
4、删除,必须将后面元素迁移,代价大。
5、ArrayList采用数组,LinkedList采用双向链表
TreeSet(见程序Tree的基本使用方法.java)
1、底层数据结构是二叉树
2、保证数据唯一性,compareTo方法(间set讲解第3条)
3、元素比较方法有两种,一,元素具有比较性,需要实现Comparable接口,覆盖compareTo方法。二集合本身具备比较性。集合初始化时候就有了比较方式。
Set(HashSet)
1、元素是无序的,不可以重复
2、HashSet底层数据结构式哈希表,线程不安全的。不同步的
3、保证唯一性方法。通过元素的两个方式(hashCode和equals)完成。前提是HashCode值相同,再比较equals是否成立。
4、判断元素是否存在,删除操作都是通过这两个方法的。
Map(HashMap的基本使用方法.java)
1、底层的数据结构是一个数组,
2、根据key的hashCode值计算对象应该存放在数组中的位置,
3、如果在hashCode值对应的位置上有对象,则顺着这个对象所在的链往下搜索(Entry类有一个Entry类型的变量,指向下一个对象位置),直到equal方法比较返回false时,就在这个地方插入,而在之前在这个位置上的对象连接到插入对象的后面。
JAVA Set集合是一个不包含重复元素的Collection。确切的讲就是其中的元素不满足 e1.equal(e2) 。
它是一个借口,方法有:
public boolean add(E object);
public boolean addAll(Collection<? extends E> collection);
public void clear();
public boolean contains(Object object);
public boolean containsAll(Collection<?> collection);
public boolean equals(Object object);
public int hashCode();
public boolean isEmpty();
public Iterator
public boolean remove(Object object);
public boolean removeAll(Collection<?> collection);
public boolean retainAll(Collection<?> collection);
public int size();
public Object[] toArray();
public
Set