標籤:io ar strong for 檔案 資料 sp 問題 on
數組和集合
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(值)//*尋找有沒有特定的值,不含鍵位
不多說,個人感歎數學不太好,應對一些實際問題時候,或多或少會有影響。
非電腦專業的碼農C#學習筆記 五、數組和集合