C#中的数组、ArrayList、List<T>的区别

自己的理解

1.数组:

优点:(内存中)存储连续、索引快速、可以多维、类型长度固定

缺点:需指定长度、插入数据效率低

2.ArrayList:(System.Collections)

优点:无需指定长度(动态扩容)、可存储不同类型的数据(同时也是缺点)、插入数据效率高

缺点:不可多维、非类型安全的、修改数据易出错、操作数据效率较低(因为存储的是Object类型,操作需要装箱拆箱)

3.List<T>:(System.Collections.Generic)

优点:无需指定长度(动态扩容)、类型安全的(通过T指定相应类型)、插入数据效率高

缺点:不可多维

参考:http://blog.csdn.net/zhang_xinxiu/article/details/8657431

时间: 2024-10-09 14:31:10

C#中的数组、ArrayList、List<T>的区别的相关文章

ArrayList和Vector的区别?

首先两个类都实现了List接口.他们都是有序不唯一的集合,说白了就是存储元素的位置是有序的(每一个元素都以一个对应的索引),相当于一个动态数组 ArrayList和Vector的区别,主要包括两个方面 同步性: Vector是线程安全的,也就是说它的方法直线是线程同步的,而ArrayList是线程不安全的,它的方法之间是线程不同步的 如果只有一个线程去访问集合那么使用ArrayList,他不考虑线程安全的问题,所以效率会高一些 如果是多个线程去访问集合,那么使用Vector 数据增长性: Arr

c#中的数组、ArrayList、List区别

数组 ArrayList 泛型List 总结 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. (1)数组引入的命名空间:using System; (2)Array:用法基本与数组同,引入命名空间:using System; (3)ArrayList:引入命名空间: using System.Collections (4)List:引入命名空间:using System.Collections.Generic; 数组 数组在C#中最早出现的.在内存

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

数组与ArrayList的关系与区别

数组与ArrayList的关系与区别 一.数组与ArrayList的主要区别:效率.类型识别和primitive type.数组([]):最高效:但是其容量固定且无法动态改变:ArrayList:容量可动态增长:但牺牲效率:建议:首先使用数组,无法确定数组大小时才使用ArrayList! 1.效率:数组扩容是对ArrayList效率影响比较大的一个因素.每当执行Add.AddRange.Insert.InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容

Java中Vector和ArrayList的区别

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复. 3个具体实现类的相关区别如下: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组

Java中针对 ArrayList和LinkedList 的区别

一般大家都知道ArrayList和LinkedList的大致区别:      1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针.      3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据. ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用

动态数组arraylist的使用

package com.vince.list; import java.util.ArrayList; public class ListDemo { public static void arraylist(){//动态数组 ArrayList list=new ArrayList(); list.add(10); list.add("小白"); list.add(true); //插入第几个元素 //list.add(1,34); //删除元素 //list.remove(0);

避免在Java+接口中使用数组的3个理由

转帖: http://eclipsesource.com/blogs/2014/04/11/3-good-reasons-to-avoid-arrays-in-java-interfaces/ 如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思.数组不仅仅老式,而且我们有合理的理由避免暴露它们.在这篇文章中,我将试图总结在Java API中使用数组的缺陷.首先从最出人意料的一个例子开始. 数组导致性能不佳 你可能认为使用

浅谈javascript和java中的数组

javascript中的数组 数组的创建 直接创建方式  var str = ['java', 'js']; 使用new创建方式: var a = new Array(10);  //  定义长度为10的数组(可变) 另类new创建方式:var a = new Array(1, 2, 3, 4, 5);  var b = [1, 2, 3, 4, 5]; 二维数组(多维)创建方式:var a = new Array([1,2,3], [4,5,6], [7,8,9]);  var b = [[1

重新认识java(十一)---- java中的数组

面向对象的一些知识暂时告一段落,从本文开始,进入java语法的重学阶段~ 初识数组 什么是数组 数组:相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列. 数组的定义及初始化 定义及动态初始化 方式一,java推荐用法: type [] 变量名 = new type[数组中元素的个数]; //举例 int[] a = new int[10]; for (int i = 0; i < a.length; i++){ a[i] = new Random().nextInt();