C#数组,ArrayList,List
一、数组声明方式
1,声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例
int[] int_array;
int_array = new int[2];
注:数组的引用必须以相同或相关类型实例化,数组初使化默认值,值类型为0,引用类型为null
2、声明一个数组引用并对他进行初使化,该数组引用被立即赋予一个数组的新实例。
int[] int_array= new int[10];
3、声明一个数组,初使化数组引用,并给数组元素赋值
int[] int_array= new int[3] {1,2,3};
注:初使化列表以逗号(,)隔开,且列表中的个数必须与数组长度一致。
4、与第三种方式基本相同,只是不设置数组的初使化大小,由数组元素确定。
int[] int_array= new int[] {1,2,3};
5、这是第四种方式的简化版,其中的数组类型与数组大小是根据初使化列表推断出来的。
int[] int_array= {1,2,3};
多维数据
多维数组为矩形数组,有多个维度与索引,维度在[]中用逗号隔开,“[,]”,例如最
常见的二维数组:
int[,] int_array= new int[2,3] {{1,2,3},{4,5,6}};
交错数组
交错数组被认为是一个数组的数组,交错数组的每一个矢量都可以有不同的长度。
首先应定义交错数组中的行(矢量数),再声明每行的元素个数
int[][] int_array= new int[2][]{new int[]{1,2,3},new int[] {1,2,3,4}}
注意与二维数组的区别
二、数组,ArrayList,List三者的区别
- 数组
优点:在内存中时连续的,速度较快,操作简单。
缺点:定义数组时要定义其长度,不是很灵活,过长过短都会造成问题。不方便进行数据的添加、插入和移除。
例如:int [] int_array=new int[4];
int_array[0]=111;
int_array[1]=123;//赋值
int_array[1]=1234;//修改
- 集合ArrayList
优点:命名空间System.Collections下的一部分。大小是动态扩充与收缩的。在声明ArrayList对象时不需要指定它的长度。ArrayList继承了IList接口,可以很方便的进行数据的添加、插入和移除.
缺点:当向集合插入不同类型的数据后(ArrayList将数据当作object存储),在进行数据处理时容易出现类型不匹配的错误,使用时需要进行类型转换处理,存在装箱与拆箱操作,造成性能大量损耗的现象。
例如:ArrayList list = new ArrayList();
list.Add("aa");
list.Add(11);
list[1] = 123;//修改
移除list.Remove(123);
list.RemoveAt(0);
- 泛型List
优点:与集合ArrayList类似且继承IList接口,在声明List集合时也要声明集合内部数据的对象类型,避免了装箱和拆箱的问题。
例如:List<int> list=new List<int>();
list.Add(123);
list[0]=111;//修改
list.RemoveAt(0);//移除
如果list.Add("abc");//编译器就会报错,避免了类型安全问题与装箱拆箱的性能问题。
C#数组,ArrayList,List的更多相关文章
- C#基础-数组-ArrayList
数组ArrayList using System.Collections; //表示引入集合的命名空间 数组ArrayList容量本身是不固定的,根据存储的数据动态变化 // 声明一个ArrayLis ...
- Java 数组ArrayList语法
恶补基础,记录一下数组ArrayList的常用语法 1.导入 import java.util.ArrayList; 2.定义数组list ArrayList<类名> list = new ...
- 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解
数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...
- [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)
[数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习) 在C#中,存在常见的九种集合类型:动态数组ArrayList.列表List.排序列表SortedList.哈希表HashTa ...
- 比较Java数组,ArrayList,LinkedList,Vector 性能比较
public class PerformanceTester { public static final int TIMES=100000; public static abstract class ...
- 动态数组 - ArrayList
前言 如果数组的大小要随时间变化,那么数组操作起来就比较麻烦. 在C++中,这种情况要用到动态向量Vector. 而Java中,提供了一种叫做ArrayList的泛型数组结构类型,提供相似的作用. 其 ...
- C#动态数组ArrayList和List<T>的比较
C#中一维动态数组(即列表)分ArrayList和List<T>两种,其容量可随着我们的需要自动进行扩充 一.ArrayList类(少用) ArrayList位于System.Collec ...
- 动态数组ArrayList的使用
1.定义类 package com.realhope.rmeal.bean; /** * * @author Wucy * 菜谱类 */ public class Menu{ private Inte ...
- java 遍历方法 及 数组,ArrayList,HashMap,HashSet的遍历
一,遍历方法的实现原理 1.传统的for循环遍历,基于计数器的: 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止.主要就是需要按元素的位置来读取元素. ...
- 关于C#中的动态数组ArrayList
在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 一.ArrayList类与Array类的区别 ArrayList类实 ...
随机推荐
- hbase启动后HMaster进程自动关闭
1.情况描述如题所示,hbase启动以后,HMaster进程启动了,几秒钟以后自动关闭,但是HRegionServer进程正常运行: 原因是,hdfs的默认端口号是8020,而我core-site.x ...
- 一脸懵逼学习MapReduce的原理和编程(Map局部处理,Reduce汇总)和MapReduce几种运行方式
1:MapReduce的概述: (1):MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. (2):MapReduce由两个阶段组成:Map和Red ...
- T37302 P哥的桶
题解: 比较简单的一道题 线段树+线性基 显然离线处理出位置 然后线段树updata的时候暴力合并线性基 nlogn^3 一个常数优化就是线性基已满就直接返回这个线性基 还有个优化是用快速找到第一个1 ...
- [转]利用ssh传输文件
利用ssh传输文件 http://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html 在linux下一般用scp这个命令来通过ssh传输文 ...
- MaterialEditText——Android Material Design EditText控件
MaterialEditText是Android Material Design EditText控件.可以定制浮动标签.主要颜色.默认的错误颜色等. 随着 Material Design 的到来, ...
- python函数默认参数为可变对象的理解
1.代码在执行的过程中,遇到函数定义,初始化函数生成存储函数名,默认参数初识值,函数地址的函数对象. 2.代码执行不在初始化函数,而是直接执行函数体. 代码实例 这要从函数的特性说起,在 Python ...
- kafka其中一台节点坏掉的迁移或者数据迁移
kafka版本:适用于目前2.0以下 第一步: 假如有一个topic叫做test,当前topic的详情是这样的: [cdh@cdh1 kafka_2.11-1.0.1]$ bin/kafka-topi ...
- Linux用过的命令集合
1,查看是否安装过openssl:(openssl version -a)(rpm -qa|grep -i openssl) 2,安装gcc:(yum install gcc-c++) 3,查看主机名 ...
- 如何用 Python 模糊搜索文件
一.我的文件在哪里? 1.告诉计算机文件在哪 使用路径描述位置 绝对路径——从根目录写到底 内置模块OS 路径 目录 文件 其他系统操作 2.描述文件的特征 用条件判断来筛选 3.对比后打印文件名 用 ...
- IDEA快速入门(Mac版)
[持续更新]一篇今年年头的老文章顺道发布了,大家有任何问题可以留言沟通.当时刚刚加入团团,愿大家有机会还是购买一台MAC,确实能给大家的效率赋能,虽然在一开始会有一些艰难!⛽️ 望借着换工作的东风,好 ...