摘要:
TreeMap和HashMap实现了同样的接口Map,因此,用法基本么有区别,但是hashMap的效率高于TreeMap,在需要排序的Map才选用TreeMap。TreeMap是红黑二叉树实现的,打开源码会看到核心代码: private transient Entry<K,V> root; root 阅读全文
摘要:
HashTable的特点HashTable继承自Dictionary类,Dictionary 类是一个抽象类,在JDK 1.0中提供用来存储键/值对,作用和Map类相似。 HashTable类中,其数据结构与HashMap是相同的。依然是采用“链地址法”实现的哈希表,保存实际数据的,依然是Entry 阅读全文
摘要:
HashMap底层实现采用了哈希表。哈希表的结构是“数组+链表”。 (1)数组:占空间连续,寻址容易,查询速度快,但是,增加和删除效率非常低。 (2)链表:占空间不连续,寻址困难,查询速度慢,但是,增加和删除效率高。 而哈希表就结合了二者的优点。 transient Node<K,V>[] tabl 阅读全文
摘要:
在现实生活中,我们进场要存储某些信息,例如,我们使用的微信,一个手机号只能对应一个微信账户,一张银行卡只能是一个人名下的,这就是一张成对存储的关系。Map就是用来存储“键(key) 值(value)对”的。其中存储的“键值对”是通过键来标识的,所有键不可重复,其中的对象都可以是自定义实现的。Map接 阅读全文
摘要:
若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数。 但是要注意,回文数不是只有奇数位,偶数位也可以是回文数,例如 123321;小数没有回文数。 回文数通俗的看就是,顺着看和反着看数字是同样大小的。 代码如下: import java.u 阅读全文
摘要:
linkList底层是双向链表,其增加,删除速度快,但是查找慢。 增加新节点时,因为插入是有序的,所以应该进行尾插。 //添加元素 public boolean add(T e) { Node newNode = new Node(e,null,null); if(size == 0){ tail 阅读全文
摘要:
每个数据都是随机产生的,Random函数,考虑到要统计每个数字出现的次数,用hashmap,用key来统计出现的数字(key不可以重复),用value来统计出现的次数。 关键代码: import java.util.*; public class StringDemo { public static 阅读全文
摘要:
利用新链表: 思路: 1.定义一个新的链表; 2.从头到尾遍历原来的链表,每遍历一个节点,将其取出,并且将其放在新的链表的最前端,也就是第一个有效结点; 3.将原来的链表的head.next = 新的链表的head.next。 主要代码: public void reverSetList(){ // 阅读全文
摘要:
算法思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包n-1个元素,排序过程中每次从无序表中取出一个元素,把他的元素依次与有序表的元素进行比 较,将它插入到有序表中的适当位置,使之成为新的有序表。 每次在颜色较浅的无序序列里,选择一个元素,放入有序序列的合 阅读全文
摘要:
1.数据结构 可利用的资源向量Available:一个含有m个元素的数组,其中每一个元素代表一类可利拥的资源数目,其初始值是系统中所配置的该类全部可用资源数目,其数值随该类资源的分配改变而改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。 最大需求矩阵Max:一个n×m的矩阵, 阅读全文