.NET,你忘记了么?(三)——关于Array和List的使用

之前,一直在谈.NET框架方面的问题,今天来谈谈关于Array和List的使用问题,这应该 算是属于算法的最基础的东西了。只是提醒大家对这个问题稍加注意。

写这个是因为一个同学的求助,事情是这样的,他去负责公司的一个培训模块,在培训模 块中,有一个功能是自动成卷。然后,我们会很容易地想到洗牌算法。于是我给他大概解释 了洗牌算法的过程和步骤,然后他给出了这样的代码,还很骄傲地告诉我,他使用了泛型… …

List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
   list.Add(i);
}
Random r = new Random();
for (int j = 0; j < 100; j++)
{
   int temp;
   int x1 = r.Next(10);
   int x2 = r.Next(10);
   temp = list[x1];
   list[x1] = list[x2];
   list[x2] = temp;
}

我委婉地告诉他,他这个方法不好,然后写下了下面的代码:

int[] array = new int[10];
for (int i = 0; i < 10; i++)
{
   array[i] = i;
}
Random r = new Random();
for (int j = 0; j < 100; j++)
{
   int temp;
   int x1 = r.Next(10);
   int x2 = r.Next(10);
   temp = array[x1];
   array[x1] = array[x2];
   array[x2] = temp;
}

他很不屑地对我说,不是都一样么!而且还在以使用了泛型为豪!我无语……

我仅仅把List(链表)换成了Array(数组),有人会说,这样的关系大么?

时间: 2024-05-18 09:56:23

.NET,你忘记了么?(三)——关于Array和List的使用的相关文章

mootools框架【三】-Array篇:主要方法测试实例

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD

mootools框架【三】-Array篇:方法完全解析

说明:由于JavaScript1.5对Array增加了一些比较好用的方法,如forEach, filter,map,every,som,indexOf,但是在还不支持JavaScript1.5的浏览器里是不能用得,所以,mootools通过扩展Array来使其实现对这些方法的支持: ---------------------------------Array.js--------------------------------- 1.Array对象的forEach方法 原型:Array.prot

.NET,你忘记了么?(三续)——重新理解List&amp;lt;T&amp;gt;

在上文中,<.NET,你忘记了么(三)--关于Array和List的使用>中,我对 List<T>的理解大错特错,在成文前,首先做下自我批评,然后也对造成的不良影响表 示道歉. 周四面试的惨败,让我的心情着实糟糕了两三天.痛定思痛,决心回家继续苦读. 首先开始的就是对List的重新认知.在这里,让我们先从构造方法来重新认识 List<T>的本质,先来看下上文中我所粘出的代码: List<int> list = new List<int>(); f

JavaScript 数组- Array的方法总结(推荐)_javascript技巧

JavaScript中的Array类型是经常用到的,Array类型也提供了很多方法能实现我们需求,下面我们来总结一下 一.创建Array的方法 var colors=new Array(); var colors=new Array(3);//创建一个长度为3的数组 var colors=new Array("red","blue")//创建一个数组["red","blue"] 当然,上面的new可以省略不写,如 var co

数组排序方法的性能比较(中):Array.Sort 实现分析

昨天我们比较了Array.Sort方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort方法.而对于Array.Sort来说,性能最高的是其中使用Comparer.Default作为比较器的重载方法.在前文的末尾我们做出了推测:由于排序算法已经近乎一个标准了(快速排序),因此从算法角度来说,Array.Sort方法和LINQ排序上不应该有那么大的差距,因此造成两者性能差异的原因,应该是具体实现方式上的问题. 下载.NET框架的代码 既然是比较实现的区别,那么阅读代

Array 与 ArrayList区别

问题描述 能否简单代码实例Array与ArrayList的区别? 解决方案 解决方案二:http://wenku.baidu.com/view/2cb8d572f242336c1eb95e94.html结贴吧解决方案三:[Array和ArrayList的区别]#1.Array类型的变量在声明的同时必须进行实例化(至少得初始化数组的大小),而ArrayList可以只是先声明.如:int[]array=newarray[3];或int[]array={1,2,3};或ArrayListmyList=

三个故事说穿了许多人

                                                                                        三个故事说穿了许多人   一.A不喜欢吃鸡蛋,每次发了鸡蛋都给B吃.         刚开始B很感谢,久而久之便习惯了.         习惯了,便理所当然了.         于是,直到有一天,A将鸡蛋给了C,B就不爽了.         她忘记了这个鸡蛋本来就是A的,A想给谁都可以.为此,她们大吵一架,从此绝交.  

一起谈.NET技术,数组排序方法的性能比较(中):Array.Sort&lt;T&gt; 实现分析

昨天我们比较了Array.Sort方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort方法.而对于Array.Sort来说,性能最高的是其中使用Comparer.Default作为比较器的重载方法.在前文的末尾我们做出了推测:由于排序算法已经近乎一个标准了(快速排序),因此从算法角度来说,Array.Sort方法和LINQ排序上不应该有那么大的差距,因此造成两者性能差异的原因,应该是具体实现方式上的问题. 下载.NET框架的代码 既然是比较实现的区别,那么阅读代

艾伟_转载:数组排序方法的性能比较(中):Array.Sort&lt;T&gt; 实现分析

昨天我们比较了Array.Sort方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort方法.而对于Array.Sort来说,性能最高的是其中使用Comparer.Default作为比较器的重载方法.在前文的末尾我们做出了推测:由于排序算法已经近乎一个标准了(快速排序),因此从算法角度来说,Array.Sort方法和LINQ排序上不应该有那么大的差距,因此造成两者性能差异的原因,应该是具体实现方式上的问题. 下载.NET框架的代码 既然是比较实现的区别,那么阅读代

这是一段封装好的js代码 有没有哪位大神帮忙解一下啊,在线等 有些急。谢谢了

问题描述 这是一段封装好的js代码 有没有哪位大神帮忙解一下啊,在线等 有些急.谢谢了 这是一段封装好的js代码 有没有哪位大神帮忙解一下啊,在线等 有些急.谢谢了 eval(function(packer){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0e)==0){while(c--)r[e(c)]