好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 集合類Array List HashTable實例操作練習

集合類Array List HashTable實例操作練習

熱門標簽:杭州智能電話機器人 百度地圖標注點擊事件 地圖標注位置多的錢 濟源人工智能電話機器人價格 山東防封電銷卡辦理套餐 怎樣在地圖標注消火栓圖形 泰州手機外呼系統軟件 廈門四川外呼系統 內蒙古智能電銷機器人哪家強
集合常用操作添加、遍歷、移除
命名空間System.Collections

ArrayList 可變長度數組,使用類似于數組
屬性 Capacity Count
方法
Add() AddRange() Remove() RemoveAt() Clear()
Contains() ToArray()
Hashtable 鍵值對(KeyValuePair)的集合,類似于字典

a、ArrayList對值類型的操作
復制代碼 代碼如下:

using System;
using System.Collections;
namespace _08_ArrayList {
//ArayList對值類型的操作
class Program {
static void Main( string[] args) {
//ArrayList與數組沒多大的區別 優點在于不像數組需規定長度 缺點是數據類型不限制 什么類型數據都可以放入 這樣會出現許多錯誤
ArrayList arylist = new ArrayList();
//ArrayList添加
arylist.Add(1000);
//arylist.Add("張三");//參數類型為object 所以可以添加多種類型的參數 取出時同樣需要類型轉換
arylist.Add(3000);
arylist.Add(4000); //發生裝箱操作 將值類型轉換引用類型
arylist.Add(5000);
int [] arr = { 1, 2, 3, 4 };
arylist.AddRange(arr); //AddRange參數是實現了ICollections接口的對象 可以一次性添加數組、array、ArrayList等實現接口的對象
//集合中元素個數 使用Count = 數組Length
Console .WriteLine("集合內容長度" + arylist.Count);
//Capacity為集合的容量 是可變的 一般*2增長
Console .WriteLine(arylist.Capacity);
//訪問集合第一個元素
int firstlist = Convert .ToInt32(arylist[0]);
Console .WriteLine(firstlist.ToString());
//ArrayList遍歷
int sum2 = 0;
for (int i = 0; i arylist.Count; i++) {
//sum2 += Convert.ToInt32(arylist[i]);//發生拆箱操作
Console .WriteLine(arylist[i].ToString());
}
foreach (object item in arylist) {
sum2 += Convert .ToInt32(item);
}
Console .WriteLine(sum2);
//ArrayList移除 只是移除 不是刪除
arylist.Remove(1000); //移除內容是1000的 Remove移除內部的某個對象
arylist.RemoveAt(1); //移除第二項 按索引移除
//注意 移除元素 ArrayList數組會重新分配索引 所以移除操作最好是倒敘移除元素
//如果移除所有的元素 直接使用Clear
//arylist.Clear();
if (arylist.Contains(3000)) {
Console .WriteLine("包含" );
}
//ArrayList還有ToArray()但是意義不大
//這里是在ArrayList中添加值類型 那么引用類型呢????添加Student類的對象?
Console .Read();
}
}
}

b、ArrayList對引用類型的操作
復制代碼 代碼如下:

using System;
using System.Collections;
namespace _09_ArrayListObject {
//ArrayList對引用類型的操作
class Student {
public Student(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Program {
static void Main( string[] args) {
Student xyy = new Student( "小月月" , 14);
Student fj = new Student( "鳳姐" , 18);
Student fr = new Student( "芙蓉姐姐" , 19);
Student xl = new Student( "犀利哥" , 20);
ArrayList student = new ArrayList();
student.Add(xyy); //添加 也可以使用AddRange
student.Add(fj);
student.Add(fr);
student.Add(xl);
//移除
//student.Remove(fj);//這里移除的就是對象 而不是值
//student.RemoveAt(1);//索引移除
//移除不掉fj 因為Remove后是object 按索引移除
//Student stu = new Student("鳳姐", 18);
//student.Remove(stu);
//Console.WriteLine(student.Contains(stu));//false 通過索引檢索 因為stu與fj地址是不一樣的
//遍歷
for (int i = 0; i student.Count; i++) {
Student s = student[i] as Student; //因為添加前發生裝箱操作 所以 現在需要拆箱 student[i]是不能點出name的
Console .WriteLine(s.Name);
}
ArrayList ary = new ArrayList();
ary.Add( "鳳姐" );
ary.Add( "小月月" );
//string類同樣是引用類型 但是這里有些特別
string name = "鳳姐" ;
Console .WriteLine(ary.Contains(name));//string比較的是內容 所以返回true
//根據學生姓名 獲取學生對象 雖然ArrayList可以實現 但是相當的復雜 而且效率低下 所以接下來學習HashTable
Console .Read();
}
}
}

c、HashTable
復制代碼 代碼如下:

using System;
using System.Collections;
namespace _10_HashTable {
class Student {
public Student(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Program {
static void Main( string[] args) {
//仍然使用Student的類來實現
//Hashtable鍵值對形式 key value 相當于字典 能根據學生的姓名快速的找到對象
Student xyy = new Student( "小月月" , 14);
Student fj = new Student( "鳳姐" , 18);
Student fr = new Student( "芙蓉姐姐" , 19);
Student xl = new Student( "犀利哥" , 20);
Hashtable student = new Hashtable();
student.Add( "小月月" , xyy);
student.Add( "鳳姐" , fj);
student.Add( "芙蓉姐姐" , fr);
student.Add( "犀利哥" , xl);
//student.Add("犀利哥",xl);//錯誤 字典中的關鍵字key 不允許重復 所以不能再添加犀利哥
//移除 因為沒有索引 所以沒有RemoveAt()
student.Remove( "小月月" );//根據key來移除
student.Clear();
student.ContainsKey( "鳳姐" );//判斷是不是含有這個鍵
//遍歷 因為字典沒有索引 所以不能使用for來遍歷 只能使用foreach
//按key遍歷 經常用
foreach (object key in student.Keys) {
Student stu = student[key] as Student;
Console .WriteLine(key);
Console .WriteLine(stu.Age);
}
//按value遍歷
foreach (object value in student.Values) {
Student stu = value as Student;
if (stu != null ) {
Console .WriteLine(stu.Age);
}
}
//如果不按key 也不按value遍歷 對字典遍歷就是對字典的鍵值對進行遍歷
foreach (DictionaryEntry de in student) {
Console .WriteLine(de.Key);
Student s = de.Value as Student; //因為得到的是object類型 所以 還需要轉換才可以使用
Console .WriteLine(s.Age);
}
Student s2 = student["小月月" ] as Student ;//通過姓名找到該對象 獲取其他的屬性
if (s2 != null ) {
Console .WriteLine(s2.Age);
}
Console .Read();
}
}
}

d、練習
復制代碼 代碼如下:

using System;
using System.Collections;
namespace _11_ArrayList練習 {
class Program {
//還是那句話 理解題目之后 有了思路再開始寫code 思路最重要
static void Main( string[] args) {
//兩個集合{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把這兩個集合去除重復項合并成一個
ArrayList ary1 = new ArrayList { "a" , "b" , "c", "d" , "e" };
ArrayList ary2 = new ArrayList { "d" , "e" , "f", "g" , "h" };
//遍歷兩個集合
for (int i = 0; i ary2.Count; i++) { //循環遍歷ary2元素與ary1逐個比較 如果存在相同值 則不添加 否則追加到ary1中
if (!ary1.Contains(ary2[i])) {//有Contains方法 如果沒有 不知道有多復雜
ary1.Add(ary2[i]);
}
}
foreach (object item in ary1) {
Console .Write(item);
}
//隨機生成10個1-100之間的數放到ArrayList中,要求這10個數不能重復,并且都是偶數
ArrayList arylist = new ArrayList();
//int numCount = 0;
while (true ) {
Random ran = new Random();
int num = ran.Next(1, 100);
if (num % 2 == 0 !arylist.Contains(num)) { //添加!arylist.Contains(num)這句話 解決以下問題
arylist.Add(num); //為什么直接運行總顯示第一個滿足條件數值 而單步調試卻顯示正確結果???
}
if (arylist.Count == 10) {
break ;
}
}
foreach (object item in arylist) {
Console .WriteLine(item);
}
//有一個字符串是用空格分隔的一系列整數,寫一個程序把其中的整數做如下重新排列打印出來:奇數顯示在左側、偶數顯示在右側。比如‘2 7 8 3 22 9'顯示成‘7 3 9 2 8 22
string str = "2 7 8 3 22 9" ;
ArrayList ary3 = new ArrayList();
ArrayList ary4 = new ArrayList();
string [] s = str.Split(' ' );
foreach (var item in s) {
if (Convert .ToInt32(item) % 2 == 0) {
ary4.Add(item);
} else {
ary3.Add(item);
}
}
ary3.AddRange(ary4); //因為ary1類型為object 所以無法使用string類的join方法實現字符拼接 后面學過泛型集合可以處理
string newstr = ary3[0].ToString();//簡單方式去掉空格
for (int i = 1; i ary3.Count; i++) {
newstr += " " + ary3[i];
}
Console .WriteLine("原字符串:{0},篩選后的字符串{1}" , str, newstr + "test" );
Console .Read();
}
}
}
您可能感興趣的文章:
  • Java中的collection集合類型總結
  • 集合類List與Dictonary實例練習
  • js正則函數match、exec、test、search、replace、split使用介紹集合
  • SQL集合函數中case when then 使用技巧
  • 使用Enumeration和Iterator遍歷集合類詳解
  • Python中集合類型(set)學習小結
  • Python set集合類型操作總結
  • C#中DataSet轉化為實體集合類的方法
  • Swift教程之集合類型詳解
  • C++簡單集合類的實現方法

標簽:臺州 百色 朝陽 新鄉 喀什 朔州 周口 洛陽

巨人網絡通訊聲明:本文標題《集合類Array List HashTable實例操作練習》,本文關鍵詞  集合,類,Array,List,HashTable,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《集合類Array List HashTable實例操作練習》相關的同類信息!
  • 本頁收集關于集合類Array List HashTable實例操作練習的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品久久区m3u8| 亚洲美腿丝袜综合一区| 国产精品老热丝在线观看| 苍井空《老师请抱我》| 男人插女人30分钟| 男人和女人叉叉| 秘?羞羞视频免费看网站| 蜜臀91丨国产人妻人伦图片 | ??国产免费叼嘿网站免费| 被自己机器人c了h| www.尤物| yeezy380蜜桃粉满| 国产精品久久久无码精品成人软件| 亚洲精品AⅤ中文字幕乱码| xxxx日本69xxxxx| 殴美男男gayvideos| 成人??高潮片免费视频动| 国产精品露脸张开双腿| **黄色小说| 韩日电影在线免费看| 成人免费毛片???果冻| 被?到爽??流片视频体育局| 殴美色网| 中文字幕乱码视频32| 国产?喷水?白浆?高潮| 天天做天天做天天爱| 后宫打屁股羞辱调教| 鸡鸡捅美女| 男女性潮高免费了120分钟| 女女百合高H喷汁黄文| 14表妺让我破了她的处| 男人舔女人逼逼| 国产青年gay同男视频网站| 羞羞漫画ss| 我要打飞机8x| 欧美黑人猛烈ⅩXXX狂暴| 程嘉美三级理论电影| 樱花aⅴ一区二区三区四区| 宝宝好久没c你了????黄| 免费无码又爽又黄A片软件下载| 舒淇拍三级在线观看|