Data Structer 主要研究数据之间的组织关系(逻辑结构)
一:线性表结构(一对一)
---从物理区分
1:顺序存储结构(典型的数组结构ArrayList):特点:查找很快(随机访问),插入,删除很慢。前驱节点不受影响,后续节点受影响。最好的情况是 追加在最后,最坏的情况是插入第一位置,此时时间复杂度最高。
2:链式:物理上没有联系,他们的联系靠指针,形成链条。特点:无法随即访问 ,插入:
如(D插入B、C之间 ) D.next=B.next-->C,B.next-->D ,B与C才能断开
链式分单向和双向链表:双向链表更快,如java中的linkedList
3:线性结构按特殊区分:
1 栈(stack):先入后出。进栈过程称为PUSH 出栈过程称为POP
2 队列(queue):两头都是开放的,只能进不能出。加数据从队尾进,对头反之
队列中循环队列才有实用价值。
rear==front判断为空。
rear%length==front判断为满
二:树状结构(一对多的关系):二叉树
三:图形结构(多对多的关系) 定点---》边,边是有方向的 如:a-->b b-->a
四:集合(离散的结构,元素之间关系不紧密,跟索引没有关系)(大数据时代)(不用维护数据之间的关系,减少性能开销。)
散列表 java中HashTable(高效集合) 为每个元素生成一个唯一的key值,相当于索引 ,查找方式key进行比对。存的顺序与插入顺序不一致,数据是无序的。
通过哈希函数(hashCode哈希码)(对散列表的长度求余)散列存放 对表进行填充
随机访问:再做一次哈希算法 进行查找
哈希值相等 哈希冲突时:
1:(key+1)%length(散列表做大,数组动态扩展)
2:对每个元素进行追加 ,存成链表(拉链法)
Java集合(一)
原创
©著作权归作者所有:来自51CTO博客作者向先先的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java遍历map集合那种方式最快
Java中遍历Map集合常用的几种方法。
System 键值对 java -
java遍历map集合哪种方式最快
java遍历map集合哪种方式最快
API Java 直接访问 -
Java的集合(一)
集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方
java 数据结构 数据 Java 集合类 -
Java面试集合(一)
Java面试集合(一)
java 构造函数 i++ 整型 无参构造函数 -
Java集合之一—HashMap
深入浅出学Java——HashMap哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术
java memcached 数据结构 数组 链表 -
java 有序唯一 集合 java有序的集合
此处为整理,更详细的源码分析请查阅 JDK源码分析其他文章。 null 值重复 底层实现 扩容 增、删、迭代 包含 备注 HashSet 允许,just 1个 n
java 有序唯一 集合 java 数据结构与算法 链表 迭代