java容器
夜_孤城
程序猿的自我救赎。。。
展开
-
java容器之四_stack
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用[plain] view plain copyE push(E item) 把项压入堆栈顶部。 E pop转载 2017-06-20 11:16:46 · 452 阅读 · 0 评论 -
java容器之五_HashMap
Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构转载 2017-06-20 14:15:49 · 258 阅读 · 0 评论 -
java容器之六_Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMap
Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMapJava LinkedHashMap和HashMap有什么区别和联系?为什么LinkedHashMap会有着更快的迭代速度?LinkedHashSet跟LinkedHashMap有着怎样的内在联系?本文从数据结构和算法层面,结合生动图解为读者一一解答。本文github地址总体介绍如果你已看过前面转载 2017-06-20 17:32:52 · 445 阅读 · 0 评论 -
java容器之七_TreeMap与红黑二叉树
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑转载 2017-06-21 11:34:21 · 2901 阅读 · 0 评论 -
java容器之八_hashTable与hashMap
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java转载 2017-06-21 13:31:08 · 410 阅读 · 1 评论 -
java容器之九_ConcurrentHashMap
ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整个结构。看下图:图左侧清晰的标注出来,lock每次都要锁住整个结转载 2017-06-21 14:22:30 · 349 阅读 · 0 评论 -
java容器之一_概述
1 数组数组( Array )是一种数据结构,用来存储同一类型值的集合,该类型的值可以是基本类型也可以是对象类型,通过一个整型下标可以访问数据的每一个值,(ps:通过反射模式也可以访问数组元素,即可以是 Array.get()操作,具体方法请查看相关API)数组的基本使用方法就不需要具体介绍了,主要是特点介绍和一般容器类的对比。不同的书本或博客可能对比的方面具体不同转载 2017-06-14 11:31:01 · 457 阅读 · 0 评论 -
java容器之二_类图
容器框架概述在JDK8中rt.jar文件中,Java.util.*;包中的容器主要包括List、Set、Queue和Map四个大类,其中List、Set、Queue是和Collection接口相关的容器,而Map是单独列出来的容器。使用astah community版绘制了容器框架的类图。Collection的List、Set、Queue类图如下:Map容器的类转载 2017-06-14 16:15:31 · 1410 阅读 · 0 评论 -
java容器之三_Vector和ArrayList的区别
今天研究了一下Vector和ArrayList的源码,又加深了对这两个类的理解。List接口下一共实现了三个类:ArrayList,Vector,LinkedList。LinkedList就不多说了,它一般主要用在保持数据的插入顺序的时候。ArrayList和Vector都是用数组实现的,主要有这么三个区别:1、Vector是多线程安全的,而ArrayList不是,这个可以从源码中转载 2017-06-15 17:50:27 · 353 阅读 · 0 评论