被问到数组、ArrayList和List的区别是什么?当下有点蒙,支支吾吾:数组与集合比较类似,都用于存放一组值…
还是来捋一下吧。
1、数组
数组是一组在逻辑上互相关联的值,通过数组名来进行数组元素的存取。
1.1 一维数组
1.1.1定义
int[] a; --整形一维数组a
double[] b; --双精度一维数组b
string[] c; --字符串一维数组c
…
1.1.2 一维数组动态初始化实例
定义完数组后,要对其进行初始化才能使用。
[TestMethod]
public void OneArray()
{
//借助new运算符动态初始化一维数组
int[] new_a = new int[2];
//int[] new_a = new int[2]{1,2}//int[] new_a = new int[]{1,2};
Boolean[] new_b = new Boolean[2];
string[] new_c = new string[2];
//一维数组的元素输出
for (int i=0; i< new_a.Length; i++)
{
Console.Write("{0}", new_a[i] + "//" + new_b[i] + "//" + new_c[i]);
Console.WriteLine();
}
}
输出:
0//False//(null)
0//False//(null)
//数值类型数组的初始化值为0
//布尔类型数组的初始值为false
//字符串类型数组的初始化值为null
注意
-
数组有初始值时,不允许数组长度为变量;
如:
int i=2;
int a = new int[i]{1,2};
这种写法是错误的 -
只有当数组没有给初始值时长度才能用变量
如:
int i=2;
int a = new int[i];
给定数组长度时,赋值的个数和数组长度要相等。
1.1.3 一维数组静态初始化实例
[TestMethod]
public void OneArray()
{
//静态初始化一维数组
int[] static_a = {
1,2};
Boolean[] static_b = {
true,false};
string[] static_c = {
"学","姐"};
//一维数组的元素输出
foreach (int i in static_a)
Console.WriteLine("{0}", i);
foreach (bool i in static_b)
Console.WriteLine("{0}", i);
foreach (string i in static_c)
Console.WriteLine("{0}", i);
}
输出:
1
2
True
False
学
姐
注意
- 数组的定义不能和静态初始化赋值分开
如
int[] a;
a={1,2};
这种写法是错误的,应该int [] a={1,2};
超过数组规定的下标,则会产生溢出的错误
1.2 二维数组
1.2.1定义
int [,] a; --整形二维数组a
double[,] b; --双精度二维数组b
string[,] c; --字符串二维数组c
1.2.2 二维数组动态初始化实例
[TestMethod]
public void TwoArray()
{
//借助new运算符动态初始化二维数组
int[,] new_a = new int[1,3];
//int[,] new_a = new int[1,3]{
{1,2,3}}
//int[] new_a = new int[,]{
{1,2,3}};
Boolean[,] new_b = new Boolean[1,3];
string[,] new_c = new string[1,3];
//二维数组的元素输出
for (int i = 0; i <