类集心得
2019-02-27 00:13 Spiderman25 阅读(520) 评论(0) 收藏 举报Collection->List->ArrayList
Collection->Queue and List->LinkedList
Collection->Set->HashSet(不重复、无序)
Collection->Set and SortedSet->TreeSet(不重复、有序)
Map->HashMap(无序、key不能重复)
Map->SortedMap->TreeMap(有序、key不能重复)
TreeMap、TreeSet自定义类的排序要实现Comparable接口,如果相同,则视为相等,无法加入,而HashSet还会出现重复
HashSet要覆写equals和hashcode,如果都相同才视为同一个
使用ListIterator时要由后向前输必先进行由前向后输
iterator能完成的输出foreach也能完成
list中remove自定义的对象要覆写equals和hashcode
String str[]=alllist.toArray(new String[]{});
Object obj[]=alllist.toArray();
















集合的数据结构
增删改查过程
HashMap
http://baijiahao.baidu.com/s?id=1665667572592680093&wfr=spider&for=pc
https://www.pianshen.com/article/1700313877/
key value都可以为空
TreeMap:红黑树
红黑树是一种二叉树,同时它还满足下列5个特性:
1. 每个节点是红色或者黑色的。
2. 根节点是黑色的。
3. 每个叶节点是黑色的。(这里将叶节点的左右空子节点作为一个特殊的节点对待,设定他们必须是黑色的。)
4. 如果一个节点是红色的,则它的左右子节点都必须是黑色的。
5. 对任意一个节点来说,从它到叶节点的所有路径必须包含相同数目的黑色节点。
特点
1.有序,顺序是根据插入的key的顺序来排的。
2.无法插入null的key
3.TreeMap通常比HashMap慢一点(树和哈希表的数据结构使然)
HashTable(可以理解为跟HashMap一样)
1、线程安全
2、key、value都不可以为null
3、无序
JAVA学习-Hashtable详解
https://www.jianshu.com/p/6c95f8216950
LinkedHashMap(可以理解为HashMap+LinkedList)
https://www.cnblogs.com/xiaoxi/p/6170590.html
HashSet TreeSet LinkedHashSet实际调用相应的Map
ArrayList:可变长数组,用System.arraycopy进行扩容,即用新的数组
LinkedList:链表
Vector(90%和ArrayList相同)
线程安全
stack:可以理解为Vector的栈
 
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号