C#编程-36:数组与ArrayList基础复习

简介: C#编程-36:数组与ArrayList基础复习

数组;

1、数组可以是一维、多维或交错的。

2、创建数组实例时,将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。

3、数值数组元素的默认值设置为零,而引用元素设置为 null。

4、交错数组是数组的数组,因此其元素为引用类型且被初始化为 null。

5、数组从零开始编制索引:包含 n 元素的数组从 0 索引到 n-1。

6、数组元素可以是任何类型,其中包括数组类型。

7、数组类型是从抽象的基类型 派生的引用类型。 由于此类型实现 和 ,因此可以在 C# 中的所有数组上使用 foreach 迭代。


长度: Array.Length

维度; Array.Rank


1、数组声明:

(1) int[] array = new int[5];                     // 级别说明符,未知数组元素

(2)int[] array1 = new int[] { 1, 3, 5, 7, 9 };

(3)int[] array1 =  { 1, 3, 5, 7, 9 };             //已知数组元素

(4)int[] array3;

array3 = new int[] { 1, 3, 5, 7, 9 };   // OK

//array3 = {1, 3, 5, 7, 9};   // Error


未知数组元素,new声明

已知数组元素,字面值声明;

数组大小一定是一个常量(const)

数组一旦给定大小就是固定的,不能在改变。


2、数组遍历

for

foreach()推荐,避免越界

获取第n维数组长度:array.GetLength(n)

获取第n维数组下界:array.GetLowerBound(n)

获取第n维数组上界:array.GetUpperBound(n)

获取数组元素:array.GetValue(n,m)等价于array[n,m]

数组由System.Array类派生


3、数组的查找

第一次出现:Array.IndexOf(array,value)

最后一次出现:Array.LastIndexOf(array,value)

二分查找第一次出现:Array.BinarySearch(array,value)

(System.Collections.IList)array.Contains()


4、数组的排序

Array.Sort(array)

Array.Reverse(array);


5、数组的拷贝(合并与拆分)

Array.Copy()四个重载


6、动态数组ArrayList

using System.Collections;

ArrayList:长度不固定,类型随意

数组:长度固定,类型单一

属性:

Count

Capacity


7、ArrayList添加元素的方法

Add(value)

AddRange(collection)


8、ArrayList元素删除

(1)Remove(value);

(2)RemoveAt(index);

(3)RemoveRange(index,count);

(4)Clear();   //清除所有元素;


9、ArrayList遍历

foreach和object


10、ArrayList查找

(1)IndexOf(value)

(2)LastIndexOf(value)

(3)BinarySearch(value)类型不一致会报异常


冒泡排序法

相关文章
|
7月前
|
存储
数组的进阶
数组的进阶
|
存储 Java 索引
【面试题精讲】ArrayList 和 Array(数组)的区别?
【面试题精讲】ArrayList 和 Array(数组)的区别?
|
存储 安全 Java
【面试题精讲】ArrayList 和 Vector 的区别?
【面试题精讲】ArrayList 和 Vector 的区别?
|
2月前
|
存储 Java 索引
《令狐带你阅读JDK源码之简单集合ArrayList》
《令狐带你阅读JDK源码之简单集合ArrayList》
30 0
|
4月前
|
存储 Java 索引
【Java集合类面试二十四】、ArrayList和LinkedList有什么区别?
ArrayList基于动态数组实现,支持快速随机访问;LinkedList基于双向链表实现,插入和删除操作更高效,但占用更多内存。
|
2月前
|
Java C++ 索引
让星星⭐月亮告诉你,LinkedList和ArrayList底层数据结构及方法源码说明
`LinkedList` 和 `ArrayList` 是 Java 中两种常见的列表实现。`LinkedList` 基于双向链表,适合频繁的插入和删除操作,但按索引访问元素效率较低。`ArrayList` 基于动态数组,支持快速随机访问,但在中间位置插入或删除元素时性能较差。两者均实现了 `List` 接口,`LinkedList` 还额外实现了 `Deque` 接口,提供了更多队列操作。
26 3
|
4月前
|
存储 安全 Java
java集合框架复习----(2)List
这篇文章是关于Java集合框架中List集合的详细复习,包括List的特点、常用方法、迭代器的使用,以及ArrayList、Vector和LinkedList三种实现类的比较和泛型在Java中的使用示例。
java集合框架复习----(2)List
|
4月前
|
存储 Java
java集合框架复习----(3)Set
这篇文章详细介绍了Java集合框架中的Set集合,包括HashSet和TreeSet的特点、实现原理和使用示例,展示了Set集合的无序性、元素唯一性以及如何通过自定义比较器实现元素的排序。
|
6月前
|
存储 Java API
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
|
6月前
|
存储 安全 Java
《ArrayList & HashMap 源码类基础面试题》面试官们最喜欢问的ArrayList & HashMap源码类初级问,你都会了?
《ArrayList & HashMap 源码类基础面试题》面试官们最喜欢问的ArrayList & HashMap源码类初级问,你都会了?
42 0