数组和集合

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] arr1 = new int[2] {1,2};
int[,] arr2 = new int[2, 3] {
{0,1,2 },
{2,3,4 }
};

Console.WriteLine(arr2[1,1]);

ArrayList
ArrayList alt = new ArrayList();
alt.Add("123");
alt.Add(123);
alt.Add(true);
bool iscontain = alt.Contains("1");
alt.Clear();
/*alt.Insert(0, "abc")*/
;
Console.WriteLine(iscontain);

for(int i = 0; i < alt.Count; i++)
{
Console.WriteLine(alt[i].ToString() + " " + alt[i].GetType().ToString());
}

foreach (var x in alt)
{
Console.WriteLine(x.ToString() + " " + x.GetType().ToString());
}

泛型集合 List
List<string> str_list = new List<string>();
str_list.Add("a");
str_list.Add("b");
str_list.Add("c");
str_list.Add("d");

foreach(string x in str_list)
{
Console.WriteLine(x);
}

哈希表hashtable

Hashtable ht = new Hashtable();
ht.Add("1","a");
ht.Add(2, "b");
ht.Add(3, false);
ht.Add("x", 3.14);
Console.WriteLine(ht[2]);
foreach(var x in ht.Keys)
{
Console.WriteLine(ht[x]);
}

字典表 Dictionary

Dictionary<string, int> dic = new Dictionary<string, int>();
dic.Add("a", 3);
dic.Add("b", 4);
dic.Add("c", 5);
dic.Add("d", 6);
dic.Add("e", 7);

foreach(var x in dic.Keys)
{
Console.WriteLine(x);
}

队列 queue

Queue que = new Queue();
que.Enqueue("张三");
que.Enqueue("李四");
que.Enqueue("王五");
que.Enqueue("赵六");
Console.WriteLine("现在的长度是" + que.Count);
Console.WriteLine(que.Dequeue());
Console.WriteLine("现在的长度是" + que.Count);

堆栈 stack

Stack st = new Stack();
st.Push("a");
st.Push("b");
st.Push("c");
st.Push("d");

Console.WriteLine(st.Count);
Console.WriteLine(st.Pop());
Console.WriteLine(st.Count);

Console.ReadLine();

int[] arr1 = new int[2] { 1, 2 };
int[,] arr2 = new int[2, 3]{
{0,1,2},{2,3,4}
};
Console.WriteLine(arr2[1, 1]);

ArrayList 特点不需要不需要限长度,不需要规定类型,缺点:键值只能是0,1,2,3往后排:

ArrayList alt = new ArrayList();
alt.Add("123");
alt.Add(123);
alt.Add(true);
alt.Remove(123); 从其中移除 clear 是全部清空的意思
bool iscontain=alt.Contains("123"); 看看里面是否包含"123",如果有就会显示"true",如果没有就会显示false;
alt.Clear(); 全部清除:
alt.Insert(0,"abc"); 意思是往 0 位置插入一个字符串"123";

Console.WriteLine(alt);
for (int i = 0; i < alt.Count;i++ ) {
Console.WriteLine(alt[i].ToString()+" "+alt[i].GetType().ToString());

}

var类型是 万能类型
foreach(var x in alt){

Console.WriteLine(x.ToString()+" "+alt[i].GetType().ToString)

}
泛型集合 list 需要规定类型,不需要规定长度 也不行规定键值 也是从0,1,2,3开始排

List<string> str_list = new List<string>();
str_list.Add("a");
str_list.Add("b");
str_list.Add("c");
str_list.Add("d");

foreach (string x in str_list) {

Console.WriteLine(x);

}

哈希表hashtable 不错在顺序的概念

Hashtable ht = new Hashtable();
ht.Add("1", "a");
ht.Add(2, "b");
ht.Add(3, false);
ht.Add("x", 3.14);
//Console.WriteLine(ht[2]);
foreach (var x in ht.Values) {

Console.WriteLine(x);

}
foreach (var x in ht.Keys)
{

Console.WriteLine(x); //取全部的值
Console.WriteLine(ht[x]);

}

字典表 Dictionary
Dictionary<string, int> dic = new Dictionary<string, int>();
dic.Add("a", 3);
dic.Add("b", 4); 前面的是key键 后面的是value值
dic.Add("c", 5);
dic.Add("d", 6);
dic.Add("e", 7);
dic.Add("f", 8);

foreach (var x in dic.Keys) {

Console.WriteLine(x);
}

队列 queue 先进先出
Queue que = new Queue();
que.Enqueue("张三");
que.Enqueue("李四");
que.Enqueue("王五");
que.Enqueue("赵六");
Console.WriteLine("现在的长度是" + que.Count);
Console.WriteLine(que.Dequeue()); //dequeue()函数用于移除每个匹配元素的指定队列中的第一个函数,并执行被移除的函数。
Console.WriteLine("现在的长度" + que.Count);

堆栈 stack 先进后出

Stack st = new Stack();
st.Push("a");
st.Push("b");
st.Push("c");
st.Push("d");
st.Push("e");

Console.WriteLine(st.Count);
Console.WriteLine(st.Pop());
Console.WriteLine(st.Count);

Console.ReadLine();

}
}
}

时间: 2024-10-16 11:20:58

数组和集合的相关文章

C#语言中数组和集合

数组.集合→用于储存多个同类型的数据数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快集合 不定长→保存的数据数量,可以在程序的执行过程中,发生变化 占用内存多 便利速度慢课时六:数组和集合 数组.集合→用于储存多个同类型的数据 数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快 集合 不定长→保存的数据数

.NET 基础 一步步 一幕幕[数组、集合、异常捕获]

数组.集合.异常捕获 数组: 一次性存储多个相同类型的变量. 一维数组: 语法: 数组类型[] 数组名=new 数组类型[数组长度]; 声明数组的语法: A.数据类型 [] 数组名称= new 数据类型[2]{1,2}: B.数据类型 [] 数组名称 = new 数据类型[数组大小]; C. 数据类型 [] 数组名称 = {数据,数据,数据,数据}; ***数组的长度一旦固定了,就不能再被改变了 可以通过索引来访问数组中的元素: 数组名称[索引位置] 案例: 多维数组:多个线性数组的值 二维:i

非计算机专业的码农C#学习笔记 五、数组和集合

数组和集合 1.数组问题Array (1)一维数组:int[] arr={1,2,3,5,5} string[] s={s,l,s,g} (2)二维数组:int[,] arr=new int[2,2]{{1,2},{3,4}} 类型[,] 数组名=new 类型[行数(元素数),列数(元素的子元素数]{{元素1,元素2},{元素…},…,} l  动态数组:类型[,] 数组名=new 类型[M,N],int M=””;int N=””; l  查看内部元素:foreach(int n in arr

集合转数组,数组转集合,集合中只可以装引用数据类型

1 package com.pang.jihe_demo; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.List; 6 7 public class Demo01 { 8 public static void main(String[] args) { 9 //集合转数组,集合中只可以装引用数据类型 10 ArrayList<Integer> list = new ArrayList

java中有关数组或集合的起始位详解

在jdbc连接数据库时,起始位都是从1开始的 例如:Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis", "root", "ms"); String sql="SELECT * FROM users WHERE NAME=?"; pstm=

数组与集合List的相互转化

数组转化为集合 #此运用的是Arrays中的asList方法,返回一个List集合 *当数组元素为基本数据类型是把整个数组当作一个元素放入List集合中,代码举例: int[] a = {1,2,3}; List<int[]> list = Arrays.asList(a);//asList是静态方法 *当数组元素为对象时,是把数组的每个元素分别放入List集合当中,代码举例: String[] s = {"ni", "hao"}; List<St

前端C#基础:数组与集合

学习web前端是一个带有一点小乐趣的过程.它是与理科思维比较相关联的,所以学习好他就必须掌握牢固的基础,对基础知识的细节要了解.下面我就总结两个我们经常用到,但又因为他们定义与用法都比较相近,而经常搞混的知识点:集合与数组. 数组与集合 相同点: 1.一个数组类型变量可以存放多个同类型的数据.2.数组项的编号称为索引或下标.3.数组的索引(下标)是一个int类型的数字,从0开始.   依次为每一个数组项编号. 4. 数组(集合)项:  变量名[ n ] 5.数组(集合)项的读取: 变量名[ 索引

java 基本数据类型数组与集合之间相互转换

Arrays工具类的asList()方法的使用* A:案例演示 * Arrays工具类的asList()方法的使用 * Collection中toArray(T[] a)泛型版的集合转数组 数组转集合 :  Arrays工具类的asList()方法的使用  public static void demo2() { //int[] arr = {11,22,33,44,55}; //List<int[]> list = Arrays.asList(arr); 基本数据类型的数组转换成集合,会将整

数组和集合的相互转换

1.集合转换为数组 package cn; import java.util.ArrayList; /**  * 集合转换为数组  */ public class ListToArrayDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("hello"); list.add("world&qu

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var