zoukankan      html  css  js  c++  java
  • C#语言之二维数组

    内容

    二维数组
    一维数组----豆角
    二维数组----表格

    定义:
    一维数组:
    数据类型[] 数组变量名 = new 数据类型[数组长度];
    数据类型[] 数组变量名 = new 数据类型[数组长度]{1,2,3....};

    二维数组:
    数据类型[,] 数组变量名 = new 数据类型[行数,列数];
    int[,] a = new int[3,4];

    赋值:
    a[行下标,列下标] = 值 下标都是从0开始的
    取值:
    a[行下标,列下标]

    锯齿数据,数组的数组
    定义:
    第一步:定义大数组
    数据类型[][] a = new 数据类型[行数][];
    第二步:定义小数组
    数据类型[] a1 = new 数据类型[列数];
    数据类型[] a2 = new 数据类型[列数];
    ......
    第三步:把小数组放到大数组中
    a[0] = a1;
    a[1] = a2;
    ....

    *int[,] a = new int [3][4]; //错
    *int[][] a = new int[3,4]; //错
    *int[][] a = new int[3][4]; //错
    *int[,] c = new int[3,4]; //对

    ***时刻注意书写时的格式将二维数组与锯齿数组(数组的数组)的定义格式区别开来。 

    例:

    int[][] a = new int[3][];

    int[] a1 = new int[] { 3, 4, 5, 6, 7 };
    int[] a2 = new int[] { 1, 2, 3 };
    int[] a3 = new int[] { 7, 8, 9, 10 };

    a[0] = a1;
    a[1] = a2;
    a[2] = a3;
    a[0]代表的是int[][]a=newint[3][]中的第一个(int[3])

    其他以此类推


    集合:

    一、ArrayList 链表,没有长度限制,可以随时向时添加或删除元素。
    需要在前面加上:using System.Collections;

    定义:
    ArrayList a = new ArrayList();
    操作:
    a.Add(数据):添加
    a.Insert(索引号,数据):插入
    a.RemoveAt(索引号):删除
    a.Count 集合中元素的个数

    取值:
    a[下标]
    取出来的值需要进行强制转换。

    二、List<类型> 链表,,没有长度限制,可以随时向时添加或删除元素。只能放指定类型的数据,取出来也不用强制转换。
    定义
    List<类型> 变量名 = new List<类型>();
    List<int> a = new List<int>();
    操作:
    a.Add(数据):添加
    a.Insert(索引号,数据):插入
    a.RemoveAt(索引号):删除
    a.Count 集合中元素的个数

    a.Sort(); 排序
    a.Reverse();反转

    取值
    a[索引号]

    三、Dictionary<key,value>字典或哈希表
    定义
    Dictionary<int,string> a = new Dictionary<int,string>();

    操作:
    a.Add(键值,数据);
    a.Remove(键值);
    a.Count;

    取值:
    a[键值]


    四、栈,队列 知道就行了
    栈:先进后出,不能随机取其中任意一个值。
    Stack<数据类型> a = new Stack<数据类型>();
    a.Push(值);
    数据类型 变量名 = a.Pop();

    队例:先进先出,不能随机取其中任意一个值。
    Queue<int> a = new Queue<int>();
    a.Enqueue(值);
    数据类型 变量 = a.Dequeue();

  • 相关阅读:
    都9012了,Java8日期时间API你还没有掌握?
    图解AQS的设计与实现,手摸手带你实现一把互斥锁!
    面试填坑笔记-从代理模式到SpringAOP的动态代理
    并发编程-硬件加持的CAS操作够快么?
    并发编程-Java内存模型到底是什么
    并发编程-你真的知道并发问题产生的源头吗?
    单例模式-最简单的设计模式?
    浅谈Java中的深克隆和浅克隆(阿里面试)
    设计模式-工厂模式
    浅谈MySQL存储引擎-InnoDB&MyISAM
  • 原文地址:https://www.cnblogs.com/koker/p/5424817.html
Copyright © 2011-2022 走看看