zoukankan      html  css  js  c++  java
  • 非计算机专业的码农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){console.write(n);}

    排序:历遍法(冒泡);插入法;选择排序(详见p109,还有光盘内容);Array.sort(arr)和;array.Reverse(arr)然后历遍就能排序

    int [] array = new int [*] ;

    int temp = 0 ;

    for (int i = 0 ; i < array.Length - 1 ; i++)

    {

    for (int j = i + 1 ; j < array.Length ; j++) //历遍arr所有位置

    {

    if (array[j] < array[i])

    {

    temp = array[i] ;

    array[i] = array[j] ;

    array[j] = temp ;

    }

    }

    }

    书本:

        int[] arr = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 };

                foreach (int m in arr)       

                int j, temp;

                for (int i = 0; i < arr.Length - 1; i++)

                {

                    j = i + 1;

                    id: //标识下面代码是重复执行的过程,方便用goto继续执行,而不用执行foreach主方法,即foreach执行i++一次,id由于goto可执行多次了

                    if (arr[i] > arr[j])

                    {

                        temp = arr[i];

                        arr[i] = arr[j];

                        arr[j] = temp;

                        goto id;

                    }

                    else

                        if (j < arr.Length - 1)

                        {

                            j++;

                            goto id;

                        }

                }

                foreach (int n in arr)

                    Console.Write(n + " ");

            }

        }

    }}

     

    l   

    l  拆分和组合:

    两个一维合成一维-int total=arr1.pength+arr2.length;int[,] totals=new int[total]{arr1arr2},arr1arr2的值:索引小于arr1则为arr1元素;大于arr1则为arr2元素

    n个含有m个元素的一维转n维-int[,] arrs=new int[n,m]{…};i<arrs.rank(<m),然后把一维的作为n维的某一层,switch(i),case 0:arrs[i,l]=arr1[j]….case1…case n…

    拆分略详见学习笔记文件夹的“数组的拆分”项目文件夹

    知识积累:console.write();一行中写到控台;console.writeline()按照原来数据结构写到控台上;

          Arr.length表示数组的长度,含有的列数和元素数量,arr.rank表示多为数组的层数和维数

    2.数组的ArrayList类(重点)位于system.collections空间命名下,只能一维数组,不等于数组

    (1)基本形式和属性:

    Arraylist alist=new arraylist(arr);int[,] arr=new int[3]{1,2,3},或者是指定元素数目后赋值

    ArrayList alist=new ArrayList(3);for(int i=0;i<list.count;i++){list.add(i);}

    ArrayList的属性:ArrayList.capacity;容量元素数;count实际包含元素数量;

    (2)元素的添加list.add(需要在ArrayList最后元素插入的元素值);list.Insert(从零开始插入的位置,插入的内容)

    (3)元素的删除:list.clear()无参数删除所有;list.remove(某个元素);

                     list.removet(第几个位置);list.moveRange(开始位置,需要删除的元素个数);

    (4)ArrayList的历遍方法:foreach….                               

    (5)查找特定元素:list.contains(要查找的内容或者元素);

    3.集合问题----哈希表hashtable

    HashTable hst=new HashTable();

    hst.add(键-列名,值);

    hst.clear();//全部删除所有的键

    hst.remove(键-列名);

    hst.contains(键-列名);//查找有无特定的键,不含值

    hst.containsvalue(值)//*查找有没有特定的值,不含键位

    不多说,个人感叹数学不太好,应对一些实际问题时候,或多或少会有影响。

  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/mrrxu/p/3995650.html
Copyright © 2011-2022 走看看