例子一.获取到list中的最大值,极其索引 List<int> ls = new List<int>();            ls.Add(1);            ls.Add(2);            ls.Add(8);            ls.Add(6); ls.Select((m, index) => new { index, m }).OrderByDescending(n=>n.m).Take(1);…
string x = string.Empty; string y = string.Empty;                Hashtable ht = new Hashtable();                ht.Add("12", "ab");                ht.Add("34", "cd");                foreach (DictionaryEntry i in ht)…
HashMap(Python字典)设计原理与实现(上篇)--哈希表的原理 在此前的四篇长文当中我们已经实现了我们自己的ArrayList和LinkedList,并且分析了ArrayList和LinkedList的JDK源代码. 本篇文章主要跟大家介绍我们非常常用的一种数据结构HashMap,在本篇文章当中主要介绍他的实现原理,下篇我们自己动手实现我们自己的HashMap,让他可以像JDK的HashMap一样工作. 如果有公式渲染不了,可查看这篇内容相同且可渲染公式的文章 HashMap初识 如果…
一.索引器 索引器类似于属性,不同之处在于它们的get访问器采用参数.要声明类或结构上的索引器,使用this关键字. 示例:   索引器示例代码 /// <summary> /// 存储星期几的类.声明了一个get访问器,它接受字符串,并返回相应的整数 /// </summary> public class 星期 {     public string[] weeks = { "星期日", "星期一", "星期二", &q…
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定义多个@Test的测试方法: a)可以每个方法单独运行(在每个方法上点右键) b)也可以全部运行(在除测试方法的其它位置右键) 2..类加载器 1).类加载器:当我们执行某个类时,JVM会加载class文件,并产生Class对象. 不同的类,JVM会使用不同的"类加载器"去加载: 2).类…
哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组长度不够用则进行扩容,然后不断地循环反复. 我们提到了字典和集合是由哈希表实现的,具体的实现过程是怎么样的呢? 其实很简单,字典里面有取值,添加值,正好对应的就是哈希表中的find和add方法.使用__getitem__和__setitem__代替两者就可以了.然后对于keys,values取值,只…
递归反转 二分查找 AVL树 AVL简单的理解,如图所示,底部节点为1,不断往上到根节点,数字不断累加. 观察每个节点数字,随意选个节点A,会发现A节点的左子树节点或右子树节点末尾,数到A节点距离之差不会超过1 一旦添加一个数,使得二叉树结构,存在节点两边子树差大于1,若是右子树大,则左旋:左子树大,则右旋. 旋转规则关键节点就是这个A节点,右子树大,则A节点变为左子树,右子节点替代A节点位置并指向A 红黑树 节点是红色或黑色. 根节点是黑色. 每个叶子节点都是黑色的空节点(NIL节点). 每个…
1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue开始处的对象但不删除 3.栈:Stack 后进先出 主要方法:Push方法入栈,Pop方法出栈.Peek弹出最后一项不删除 4.哈希表:HashTable 通过键值对更快捷的查找元素.键不能为空引用,但值可以 示例:Hashtable ht=new Hashtable(); //创建一个Hashta…
哈希表 传送门:https://www.cnblogs.com/xpvincent/archive/2013/01/15/2860841.html using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Progr…
1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue开始处的对象但不删除 3.栈:Stack 后进先出 主要方法:Push方法入栈,Pop方法出栈.Peek弹出最后一项不删除 4.哈希表:HashTable 通过键值对更快捷的查找元素.键不能为空引用,但值可以 示例:Hashtable ht=new Hashtable(); //创建一个Hashta…