数据结构
zh521zh
这个作者很懒,什么都没留下…
展开
-
HashMap,HashSet,LinkedHashSet,LinkedHashMap,ArrayList 原理
HashMap的实现原理1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指转载 2017-08-22 10:32:49 · 396 阅读 · 0 评论 -
java 集合排序
java 集合排序Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.util.List, java.util.Comparator)第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。第二转载 2017-09-08 16:00:44 · 375 阅读 · 0 评论 -
数组、ArrayList、List、LinkedList的区别
一、数组数组在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。1、一维数组声明一个数组:int[] array = new int[5]; 初始化一个数组:int[] array1 = new int[5] { 1, 3, 5, 7, 9 }; //定长声明并初始化:int[] array2 = { 1,转载 2017-06-23 15:17:45 · 1564 阅读 · 0 评论 -
StringBuilder 以及 StringBuffer默认大小与扩容
StringBuilder 以及 StringBuffer默认大小与扩容 可变的 char[] 扩容1. 首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类无参构造方法2. 源码中StringBu转载 2017-08-30 12:20:29 · 12783 阅读 · 0 评论 -
ArrayList和Vector的扩容机制
ArrayList和Vector都是继承了相同的父类和实现了相同的接口。如下 Java代码 public class Vector extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable {} publ转载 2017-08-08 18:02:49 · 442 阅读 · 0 评论 -
缓存回收策略 以及 回收算法
缓存回收策略1 基于空间即设置缓存的【存储空间】,如设置为10MB,当达到存储空间时,按照一定的策略移除数据。2 基于容量基于容量指缓存设置了【条目的最大值】,当缓存的条目超过最大大小,则按照一定的策略将旧数据移除。3 基于时间TTL(Time To Live ):存活期,即缓存数据从缓存中创建时间开始直到它到期的一个时间段(不管在这个时间段内转载 2017-08-31 16:19:55 · 2027 阅读 · 0 评论 -
缓存回收算法 FIFO 、LRU、LFU三种算法
提到缓存,有两点是必须要考虑的:(1)缓存数据和目标数据的一致性问题。(2)缓存的过期策略(机制)。 其中,缓存的过期策略涉及淘汰算法。常用的淘汰算法有下面几种: (1)FIFO:First In First Out,先进先出 (2)LRU :Least Recently Used, 最近最少使用 (3)LFU :Le转载 2017-08-31 16:00:48 · 1752 阅读 · 0 评论 -
java 数组
数组(Array):相同类型数据的集合。 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地址。 方式2(同C语言) type变量名[] = new type[数转载 2015-04-03 19:24:38 · 335 阅读 · 0 评论 -
java 获取map中所有的key值
java 获取map中所有的key和value值java.util.Iterator it = hashmap.entrySet().iterator();while(it.hasNext()){java.util.Map.Entry entry = (java.util.Map.Entry)it.next();entry.getKey() 返回与此项对应的键entry.g原创 2014-11-17 16:29:48 · 52754 阅读 · 4 评论 -
hashmap hashtable 的区别
Hashtable 和 HashMap 做为 Map 的基本特性两者都实现了Map接口,基本特性相同- 对同一个Key,只会有一个对应的value值存在- 如何算是同一个Key? 首先,两个key对象的hash值相同,其次,key对象的equals方法返回真内部数据结构Hashtable和HashMap的内部数据结转载 2017-04-21 14:49:12 · 200 阅读 · 0 评论 -
Java HashMap的工作原理
面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要转载 2017-08-02 14:02:56 · 183 阅读 · 0 评论 -
B tree、B-tree和B+tree
(1)B tree 即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就转载 2017-08-29 16:07:24 · 2792 阅读 · 2 评论 -
HashTable 与HashMap 三点区别
1) HashTable 与HashMap实现的是不同的接口 HashTable 是Dictionary的子类 / HashMap 是Map接口的子类2)HashTable的键值都不允许为空, HashMap的键值允许为空。HashTable不允许null值(key和value都不可以),HashMap允许null值(key和v原创 2015-08-22 21:31:40 · 554 阅读 · 0 评论 -
list集合去除重复对象
对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除。 当set集合存储的是对象类型时,需要在对象的实体类里面重写public boolean equals(Object obj) {} 和 public int hashCode() {} 两个方法。 实体类[html] v转载 2017-09-04 19:10:02 · 1652 阅读 · 0 评论