JAVA学习第10天

注意:linkedlist排序和Arraylist排序方式一样为Collections.sort(list1);
ii.vector实现类:线性队列式结构(动态数组)线程安全
iii.Stack实现类:表示后进先出的对象堆栈。
i)方法:1.public Stack(){}创建一个空堆栈。
         2.public  E    push(E item) {}把项压入堆栈顶部。
         3.public E peek(){}查看堆栈顶部的对象,但不从堆栈中移除它。

b.Set接口:有序,不可重复的集合
a.一个不包含重复元素的 collection
b.方法:
a)Public boolean    add(E e)  如果 set 中尚未存在指定的元素,则添加此元素(可选操作)
c.TreeSet:基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,
注意:1.在值的比较时:list的contains使用的为equals方法,Set的contains用compareTo。
     2.修改Set里面的值时,会用到快速排序,当里面的值被修改后再作比较时,只会从基准点以后的开始。
二.Map接口:
1.将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
2.方法:
(1)Public   V    put(K key, V value){}在此映射中关联指定值与指定键。
(2)Public   V    get(Object key) {}返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
(3)Public  boolean    isEmpty(){}如果此映射不包含键-值映射关系,则返回 true。
(4)Public  Collection    values() 返回此映射所包含的值的 Collection 视图。
*重点:1.HashSet如果遇到重复值,后面不会存放进去,Map遇到重复值,后面会覆盖前面
实现类    结构    是否唯一    判断重复    如何添加    如何删除    如何获取
ArrayList
Vector
Stack    数组    否    Equals循环数组和指定内容    数组扩容后放入到数组最后一个位置    后元素位置前移,最后一个赋null    通过下标获取
Linkedlist    链表    否    Equals
Next
Prev    新建一个Node    将当前结点设置为null,将相邻结点的上一个或者下一个设置为null,prev和next连接    通过key,通过就近原则,选择从first还是last进行迭代,找出元素
HashMap    数组+链表    K:是
V:否    Key的写法等同于hashset中的写法    新建一个Node(K,V,next)
1.判断K是否重复
2.数组容量是否够(如果到了零界点,扩容)     移除指定key,这个key是一个node,判断next,如果没有,移除它,如果有,移除它,将它的上一个结点的next指向它的next,size--    通过key,通过就近原则,选择从first还是last进行迭代,找出元素
TreeSet    树    是    CompareTo,如果是0,代表重复,    根基点进行判断,决定向左还是向右,依次判断,不存在,存入    移除指定key,这个key是一个node,判断next,如果没有,移除它,如果有,移除它,将它的上一个结点的next指向它的next,size--    无法获取
HashSet    数组+链表    是    首先hashcode比较,如果一致,在进行equals比较    判断内容是否重复,如果不重复,新建一个node((hashK)K,V,next)        无法获取


三.Collections工具类

你可能感兴趣的:(Java,初学,入门)