一、数组分类

  数组可以简单分为3类:

  • 1维数组
  • 2维数组
  • 交错数组

二、数组初始化

  1.一维数组

  int [] A = { 1,2,3,4 } 直接赋值

  或者

  int [] A = new int [4]{ 1,2,3,4 } new一下,并声明大小

  2.二维数组

  每行个数必须相同,适合规整的数据存储;

  int[,] AA={ {1,2 }, { 4,5 }, {6,7 } }; 直接赋值

  int[,] AA=new int[ , ] { {1,2 }, { 4,5 }, {6,7 } };new一下

  int[,] AA=new int[3,2] { {1,2 }, { 4,5 }, {6,7 } };new 并同时声明大小

  注意:没有声明子项长度时,数组每个子项的大小,必须和第一个子项相同。

  3.交错数组

  每项的个数不一定相同,自由度较高;

    int[][] AAA = { new int[]{1}, new int[]{1,2}, new int[]{3,2} };

  注意:交错数组和二维数组的区别是,交错数组并不限制子项的大小一致。


三、数组常用函数

  int A[]的各种函数其实是由Array类来提供的,下面是Array的属性和方法:

函数名

方法

示例

Clear

清空

Clear(Array array, int index, int length);

根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。

Array.Clear(A,0,3);

Copy

复制

void Copy(Array sourceArray, Array destinationArray, int length);

从一个数组A复制某范围内地 数据到另一个数组B

Array.Copy(A, B, 3);

GetLength

获得长度

int GetLength(int dimension);

获得长度

A.GetLength();

GetValue

获得某下标的值

Object GetValue(Int32)

获取一维数组中指定位置的值。索引由一个 32 位整数指定。

Object obj = A.GetValue(1)

等价于 A[1]

SetValue

设置某下标的值

void SetValue(object value, int index);

当前表示设置1维数组A[index]=value;

void SetValue(object value, long index1, long index2);

当前表示设置2维数组A[index1][index2]=value;

A.SetValue(10,1);

等价于 A[1]=10

IndexOf

查找

int IndexOf(Array array, object value);

第一个出现value数值的位置

int LastIndexOf(Array array, object value, int startIndex);

最好出现value数值的位置

Sort

排序

Sort(Array array)

将数组按照某个规则排序

下面详解

Reverse

翻转

void Reverse(Array array);

将数组翻转

Resize

重设大小

void Resize<T>(ref T[] array, int newSize);

重新设置数组大小

更多函数,请详见:class Array类


四、重点函数详解

  (1)Sort排序:

void Sort(Array array);  默认排序

void Sort(Array array, int index, int length);   从index开始,截取length长度的数据排序

void Sort(Array array, IComparer comparer);  常规的int/string类型数据,自定义排序

void Sort<T>(T[] array, Comparison<T> comparison);  结构体、类等复杂的数据类型 排序,在comparison自定义排序规则

void Sort(Array keys, Array items);  两组数组一起排序,结果按照数组keys的默认排序来排。

void Sort(Array keys, Array items, IComparer comparer);  两组数组一起排序,结果按照数组keys的自定义排序来排。

(2)Resize重新设置大小:

void Resize<T>(ref T[] array, int newSize);

  此方法分配指定大小的新数组,将元素从旧的数组复制到新,然后使用新替换旧的数组。array必须是一维数组。

    • 如果array是null,此方法具有指定大小创建一个新数组。
    • 如果newSize大于Length的旧的数组中,分配一个新数组,且所有元素从旧的数组都复制到新。 
    • 如果newSize是小于Length的旧的数组中,分配一个新数组和元素从旧数组复制到新直到填充新的; 旧的数组中的元素的其余部分将被忽略。 
    • 如果newSize等同于Length的旧的数组,此方法不执行任何操作。

 

最新文章

  1. 链接的热键属性accesskey
  2. springmvc 配置多视图,返回jsp,velocity,freeMarker,tiles(模板)等等
  3. 《深入浅出WPF》笔记二
  4. python RabbitMQ队列/redis
  5. Android 网络框架 volley源码剖析
  6. Teamwork——Week 4 Daily Scrum Meeting#1 2013.10.23
  7. java_闭包和回调实现一边按键盘一边演讲
  8. dubbo源码分析一:整体分析
  9. Heritrix源码分析(十五)
  10. js实现刷新
  11. Java8学习(4)-Stream流
  12. CSS---伪类与伪元素的区别
  13. Java面向对象——类,对象和方法
  14. 闪动效果的实现 (jquery方式和css方式)以及 keyframes和opacity 与ie等各浏览器兼容问题
  15. flask项目部署
  16. Codeforces Round #547 (Div. 3) D
  17. Python两个变量的值进行交换的方法
  18. async 配合mysql
  19. Ubuntu下安装arm-linux-gnueabi-xxx编译器【转】
  20. Redis底层数据类型

热门文章

  1. UER#7 T2
  2. linux shell发送邮件
  3. c# 实现WebSocket
  4. BZOJ-4327:JSOI2012 玄武密码(AC自动机模板题)
  5. bzoj 1954 &amp; poj 3764 The xor-longest Path dfs+Trie
  6. 洛谷P3252 [JLOI2012]树
  7. 【Lintcode】033.N-Queens II
  8. Xshell 主机和远程机之间的文件传输
  9. QT(3)第一个QT程序
  10. uC/OS-II源码分析(一)