java基础-数据结构
andy2cloud
这个作者很懒,什么都没留下…
展开
-
Java中HashMap和TreeMap的区别深入理解
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不转载 2014-12-11 14:58:15 · 458 阅读 · 0 评论 -
JAVA不可变类(immutable)机制与String的不可变性
一、不可变类简介不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。可变类:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。二、不可变类的优点说完可变类和不可变类的区别,我们需要进一步了解为什么要有不可变类?这样的特性对JAVA转载 2018-01-27 14:41:30 · 240 阅读 · 0 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表转载 2017-09-10 21:22:37 · 285 阅读 · 0 评论 -
Java四类八种数据类型
第一类:逻辑型boolean第二类:文本型char第三类:整数型(byte、short、int、long)char类型占2个字节short从-32768到32767int从-2147483648,到2147483647共10位long从-9223372036854775808到9223372036854775807共19位第四类:浮点型(float、do转载 2017-09-10 00:01:36 · 301 阅读 · 0 评论 -
BTree,B-Tree,B+Tree,B*Tree都是什么
B树、B-树、B+树、B*树都是什么 B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询转载 2017-08-09 14:40:51 · 9720 阅读 · 9 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表 二、Ha转载 2017-07-18 23:57:33 · 730 阅读 · 0 评论 -
ArrayList和LinkedList区别
一般大家都知道ArrayList和LinkedList的大致区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。原创 2015-12-09 19:09:34 · 406 阅读 · 0 评论 -
Java集合中那些类是线程安全的 以及 Map线程安全几种实现方法
线程安全类在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。statck:堆栈类,先进后出hash转载 2017-06-28 18:42:18 · 2862 阅读 · 0 评论 -
一看你就懂,超详细java中的ClassLoader详解
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]Class文件的认识你还记得java环境变量吗JAVA_HOMEPATHCLASSPATH环境变量的设置与查看JAVA类加载流程加载顺序ExtClassLoader源码AppClassLoader源码每个类加载器都有一个父加载器父加载器不是父类Bootstrap Clas转载 2017-06-01 11:05:20 · 3045 阅读 · 0 评论 -
字符与字节有什么区别
(一)“字节”的定义字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。(二)“字符”的定义字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。(三)“字节”与“字符”它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,转载 2016-12-21 15:31:07 · 83074 阅读 · 10 评论 -
Java数组排序Arrays.sort,以及Comparator接口的用法
有的时候需要对数组里的element进行排序。当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sort排序方法,在 数组元素比较少的时候为何不用? Sorting an Array 1. 数字排序 int[] intArray = new int[] { 4, 1, 3, -23 }; Arrays.sort(intArray); 输出: [转载 2015-05-04 15:33:34 · 496 阅读 · 0 评论 -
关于数组和List之间相互转换的方法
1.List转换成为数组。(这里的List是实体是ArrayList)调用ArrayList的toArray方法。toArraypublic T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的转载 2015-11-05 17:13:29 · 4024 阅读 · 0 评论 -
Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-ea转载 2015-12-01 18:13:18 · 376 阅读 · 0 评论 -
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap。本节实例主要介绍这4中实例的用法和区别。关键技术剖析:Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复。l (1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直转载 2014-12-13 16:52:14 · 482 阅读 · 0 评论 -
java内存解析--heap(堆)stack(栈)的理解
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样一层层堆起来,后面转载 2018-01-30 10:32:18 · 534 阅读 · 0 评论