上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: 一般来说我们都是用 Hashtable 的 ContainsKey 方法来查找 Hashtable 中是否存在某个键值然后读取他,但是这个方法并不是效率最好的方法。比较好的方法是直接读取键值然后判断这个对象是否为 null 然后读取。两种代码分别如下:1.一般慢速的方法:if (objHash.ContainsKey(keyValue)){ strValue=(String)objHash[keyValue]; } 2.而快速的方法是:Object objValue=objHash[keyValue];if (objValue!=null){ strValue=(String)objVal.. 阅读全文
posted @ 2013-04-30 13:23 Binyao 阅读(491) 评论(0) 推荐(0)
摘要: 假设这样的一个场景,有两个List<string>,分别是listA和listB,其中均有超过1w+的数据量,现在要求找出在B中但是不在A中的数据集合,于是我们写了以下代码View Code listB.ForEach(re => { if (!listA.Contains(re)) { //....... } });这样写的话,是能够达到我们的需求的,但是很不幸,时间也会消耗很多。我们看下List.Contai... 阅读全文
posted @ 2013-04-29 23:39 Binyao 阅读(2428) 评论(0) 推荐(0)
摘要: 一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.二,哈希表的简单操作 在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value); 在哈希表中去除某个keyvalue键值对:Hashtab. 阅读全文
posted @ 2013-04-29 22:53 Binyao 阅读(284) 评论(0) 推荐(0)
摘要: static void Main(string[] args) { string s = "this is a test"; Dictionary dict = GetCharCount(s); //foreach (... 阅读全文
posted @ 2013-04-29 22:50 Binyao 阅读(144) 评论(0) 推荐(0)
摘要: 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。优点:极快,数据移动少;O(nlog n) 期望时间,O(n^2) 最坏情况 缺点:不稳定。 View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 快速排序{ 阅读全文
posted @ 2013-04-29 21:50 Binyao 阅读(235) 评论(0) 推荐(0)
摘要: 很简单,做过本地化的人我认为都应该清楚,中文和一些特殊符号是无法直接在URL里传递的,但可以加工后传递,获取的时候再解加工后台代码:System.Web.HttpUtility.UrlEncode(str)System.Web.HttpUtility.UrlDecode(str)JS:encodeURI(str);decodeURI(str); 阅读全文
posted @ 2013-04-28 15:25 Binyao 阅读(329) 评论(0) 推荐(0)
摘要: 给出2n+1个数,其中有2n个数出现过两次,如何用最简便的方法找出里面只出现了一次的那个数。例如这样一组数3,3,1,2,4,2,5,5,4,其中只有1出现了1次,其他都是出现了2次,如何找出其中的1?最简便的方法是使用异或,代码如下:View Code public class XOR { public static void main(String[] args){ int[] arr={3,3,1,2,4,2,5,5,4}; int res=0;//初始值 for(int i=0;i<arr.length;i++){ ... 阅读全文
posted @ 2013-04-28 15:16 Binyao 阅读(291) 评论(0) 推荐(0)
摘要: 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。 说到单一职责原则,很多人都会不屑一顾。因为它太简单了。稍有经验的程序员即使从来没有读过设计模式、从来没有听说过单一职责原则,在设计软件时也会自觉的遵守这一重要原则,因为这是常识。 阅读全文
posted @ 2013-04-28 13:40 Binyao 阅读(244) 评论(0) 推荐(0)
摘要: 冒泡排序,跟选择排序最容易混淆:冒泡排序原理根据泡泡从第一个数开始,往上浮动,如果比第二个大或者小,就向上浮动或者不浮动。冒泡排序就是相邻的两个数进行比较,然后根据判断交换位置。View Code static void Main(string[] args) { int[] numList = new int[] { 4, 3, 5, 6,7,9,10,8 }; BubbleSortList(numList); foreach (var num in numList) ... 阅读全文
posted @ 2013-04-27 23:50 Binyao 阅读(174) 评论(0) 推荐(0)
摘要: 好久没有看算法了,今天想想选择排序(唉,跟冒泡排序搞混了),写了半个小时才写出来,人真的笨了。唉,忘记了!下次面试别人的时候,可以考考。选择排序第一轮 找出最大或者最小的数,放到第一个位置。第二轮 找出除第一个数以外的 最大或者最小的数,放到第二个位置。第三轮 找出除第一个,第二个数以外的 最大或者最小的数,放到第三个位置。以此类推!这样,共整个数组的长度*整个数组的长度次循环后,得到排序好的数组View Code static void Main(string[] args) { int[] numList = new int[] { 4, 3, 5, 6... 阅读全文
posted @ 2013-04-27 23:10 Binyao 阅读(206) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 下一页