七数组和集合(一维数组和二维数组的声明以及使用,arraylist类,hashtable,list,directory字典等常用集合(泛型和非泛型))

author author     2022-09-24     689

关键词:

数组

数组就是一个集合,同一数据类型的一组值 ,是数量固定的相同类型元素的组合 。

数组属于引用类型 数组的索引从0开始,就是说如果你想访问一个数组元素,你就得通过,相应元素的整数索引号访问。

定义一维数组:数组类型[ ]  数组名=new 数据类型[元素个数];

int [ ] arrMyInt= new int [10];//定义了一个数组

//该数组的数据类型是int,具有10个元素。

int [ ] arrMyInt; //声明一维数组

arrMyInt =new int [10]; //给数组分配存储空间

初始化数组—动态初始化:在初始化数组的时候后必须用new关键字,同时初始化数组时必须声明数组的大小

int[ ] arrIntArray;

arrIntArray=new int[3];//可以容纳3个整数

arrIntArray[0]=12;//为数组的第一个元素赋值

arrIntArray[1]=44;//为数组的第二个元素赋值

arrIntArray[2]=6;

也可以将定义和动态初始化写在一起:string[ ] arrMyString=new string[3]{“as”,”vb”,”23”};

初始化数组—静态初始化:用这种方法对数组进行初始化时,无须说明数组元素的个数,只需按顺序列出数组中的全部元素即可,系统会自动计算并分配数组所需的内存空间。

int[ ] arrPoints={-45,9,29,32,46}; //定义了一个5个元素的整型数组

char[ ] arrLetters={a,b,c,d}; //定义了一个4个元素的字符型数组

数组的初始值

当你添加一个值类型到数组初始化时值是

数值类型被初始化为0

布尔类型被初始化为false

字符类型被初始化为null

枚举类型被初始化为0

二维数组

//二维数组的定义和初始化
double[ , ]  arrDouble=new double[ 3, 4 ] ;
//在动态初始化二维数组时,也可以直接为其赋予初始化值。
int[ , ]  arrInt=new int[ , ]{{1, 3}, {2, 4}, {5,6}};
//二维数组也可以进行静态初始化 
har[ , ]  chrLetter={{‘a’, ‘b’, ‘c’}, {‘x’, ‘y’, ‘z’}};

ArrayList类

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。

但是,与数组不同的是,可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。

它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

 ArrayList al = new ArrayList();

            Console.WriteLine("Adding some numbers:");
            al.Add(45);
            al.Add(78);
            al.Add(33);
            al.Add(56);
            al.Add(12);
            al.Add(23);
            al.Add(9);
            
            Console.WriteLine("Capacity: {0} ", al.Capacity);
            Console.WriteLine("Count: {0}", al.Count);
                      
            Console.Write("Content: ");
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Write("Sorted Content: ");
            al.Sort();
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();


//当上面的代码被编译和执行时,它会产生下列结果
Adding some numbers:
Capacity: 8
Count: 7
Content: 45 78 33 56 12 23 9
Content: 9 12 23 33 45 56 78    

Hashtable 类

Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用来访问集合中的元素。

当使用访问元素时,则使用哈希表,而且可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。

List

所属命名空间:System.Collections.Generic    

List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口。

泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行,向下强制类型转换,所以性能得到提高。

Directory

在C#中,Dictionary提供快速的基于兼职的元素查找。它的结构是这样的:Dictionary<[key], [value]> ,当有很多元素的时候可以使用它。

它包含在System.Collections.Generic名空间中。在使用前,你必须声明它的键类型和值类型。

任何键都必须是唯一的,键不能为空引用null,若值为引用类型,则可以为空值。

创建及初始化:Dictionary<int,string> myDictionary=new Dictionary<int,string>();

 

第05章数组

/**第五章数组数组用来存储数据,类似数据的缓存,是一组有序列的数据集合。数组是具有相同数据类型的数据的集合,即数组中每个数据都是同一类型数据。数组分为一维数组、二维数组、三维数组和多维数组,每一维代表一... 查看详情

二维数组面向对象编程的概念类对象以及引用和成员方法

1.二维数组(熟悉)1.1基本概念一维数组本质上就是一段连续的存储单元,用于存放多个类型相同的数据内容。二维数组本质上就是由多个一维数组组成的数组,也就是说二维数组中的每个元素都是一维数组,而一维数组的每个元... 查看详情

七java数组

目录一、一维数组声明方式数组对象的创建元素为引用数据类型的数组数组初始化数组元素默认初始化数组元素的引用二、二维数组概念初始化二维数组举例三、数组的拷贝四、练习数组可以堪称是多个相同类型数据组合,对这... 查看详情

指针与一维数组和二维数组以及字符串指针数组的学习笔记

...注释了,看注释信息理解即可。说明:本程序讨论了一维数组和指针的关系,谈论了二维数组和指针之间的关系,讨论了字符串数组指针数组和指针之间的关系,代码中以给出定义的方法和简单的使用,但是有些使用方法并没有... 查看详情

c语言一维数组转二维数组

假设,一维数组有25个元素分别是11121314151617181920212223242526272829303132333435把它转成二维数组排成5X5的矩阵且从小到大排列如:11121314151617181920212223242526272829303132333435写出这段程序用TuborC写把一维数组a[25]转换成b[5][5]最好有有说明详... 查看详情

javase数组:一维数组二维数组动态数组静态数组

1、一维数组1.1数组的声明和初始化声明方式:Stringstr[];//不建议使用String[]str2;静态初始化:初始化和赋值同时进行String[]str=newString[]{“aa”,”bb”}String[]str2={“aa”,”bb”}//声明和初始化不可以分开动态... 查看详情

数组-二维数组(代码片段)

一、如何理解二维数组数组属于引用数据类型数组的元素也可以是引用数据类型一个一维数组A的元素如果还是一个一维数组类型的,则此数组A称为二维数组二、二维数组的声明与初始化正确的方式://二维数组的声明和初始化in... 查看详情

java中的二维数组

所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。那么如何使用二维数组呢,步骤如下:1、声明数组并分配空间 2、赋值二维数组的赋值,和一维数组类似,... 查看详情

数组(代码片段)

第3章数组3.1数组概述3.2一维数组3.2.1一维数组的声明和初始化3.2.2一维数组的使用3.3二维数组3.3.1二维数组初始化3.3.2二维数组的使用3.1数组概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用... 查看详情

数组(代码片段)

第3章数组3.1数组概述3.2一维数组3.2.1一维数组的声明和初始化3.2.2一维数组的使用3.3二维数组3.3.1二维数组初始化3.3.2二维数组的使用3.1数组概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用... 查看详情

java数组声明创建和使用以及多维数组arrays类稀疏数组

目录数组概述数组声明创建内存分析java内存分析堆栈方法区三种初始化静态初始化动态初始化数组的默认初始化数组的四个基本特点数组边界小结:数组使用数组基础使用ForEach循环和普通for循环多维数组二维数组Arrays类稀疏数... 查看详情

细说java中的二维及多维数组

1引言在Java学习中,数组是我们的常遇见的表现形式,相信大家对于一维数组已经得心应手了,那么,多维的数组呢?以简单的来说,二维又如何表现呢?在二维之后的多维数组呢?2 问题介绍多维数组&... 查看详情

一维数组与二维数组的拼接与二维数组增加行

一维数组与二维数组的拼接numpy有很多的拼接函数。比如hstack和vstack等。网上又很多这样的总结帖子。但是两个数组能拼接的条件就是得满足两个数组的维度要相同。所以二维数组和一维数组拼接的时候需要使用newaxis将一维数组... 查看详情

java中一维,二维数组的静态和动态初始化

今天我们要开始来讲讲Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化数组概述:数组可以看成是多个相同类型数据的组合,对这些数据的统一管理;数组变量属于引用数据类型,数组也可以看成是对象,数组中的每... 查看详情

一维动态数组和二维动态数组的创建和使用

#include<stdio.h>#include<malloc.h>voidmain(){int*a,n=10,i;/*calloc()函数的原型是:(void*)calloc(unsignedn,unsignedsize)calloc()函数用于向系统动态申请n个,每一个占sizege字节的内存单元,函数返回值为所申请的内存空间首地址malloc和calloc主... 查看详情

4.数组和排序算法1

1.数组的定义一组相关变量的集合一个数组实际上就是一连串的变量数组中的变量必须是相同的数据类型数组可以分为一维数组、二维数组和多维数组例如:numbers[100]来代替直接声明100个独立变量number0,number1,....,number992.一维... 查看详情

java数组(代码片段)

目录数组的概念数组的使用一维数组一维数组的使用步骤:一维数组的声明一维数组的创建一维数组的访问多维数组二维数组的声明二维数组的创建二维数组的访问作业作业一:作业二:作业三:作业四:数... 查看详情

一维数组和二维数组(代码片段)

数组一维数组的创建与初始化数组的创建数组的概念:一组具有相同类型元素的集合。创建的方式:数组的元素类型数组名称指定数组的大小例:intarr[10]:创建了一个具有10个整形类型的数组。chararr[10]:创建了一个包含有10个字... 查看详情