• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    集合類Array List HashTable實(shí)例操作練習(xí)

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:41:37
    文檔

    集合類Array List HashTable實(shí)例操作練習(xí)

    集合類Array List HashTable實(shí)例操作練習(xí):集合常用操作添加、遍歷、移除 命名空間System.Collections ArrayList 可變長(zhǎng)度數(shù)組,使用類似于數(shù)組 屬性 Capacity Count 方法 Add() AddRange() Remove() RemoveAt() Clear() Contains() ToArray() Hashtable 鍵值
    推薦度:
    導(dǎo)讀集合類Array List HashTable實(shí)例操作練習(xí):集合常用操作添加、遍歷、移除 命名空間System.Collections ArrayList 可變長(zhǎng)度數(shù)組,使用類似于數(shù)組 屬性 Capacity Count 方法 Add() AddRange() Remove() RemoveAt() Clear() Contains() ToArray() Hashtable 鍵值

    集合常用操作添加、遍歷、移除
    命名空間System.Collections

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

    a、ArrayList對(duì)值類型的操作
    代碼如下:


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

    b、ArrayList對(duì)引用類型的操作
    代碼如下:

    using System;
    using System.Collections;
    namespace _09_ArrayListObject {
    //ArrayList對(duì)引用類型的操作
    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);//這里移除的就是對(duì)象 而不是值
    //student.RemoveAt(1);//索引移除
    //移除不掉fj 因?yàn)镽emove后是object 按索引移除
    //Student stu = new Student("鳳姐", 18);
    //student.Remove(stu);
    //Console.WriteLine(student.Contains(stu));//false 通過(guò)索引檢索 因?yàn)閟tu與fj地址是不一樣的
    //遍歷
    for (int i = 0; i < student.Count; i++) {
    Student s = student[i] as Student; //因?yàn)樘砑忧鞍l(fā)生裝箱操作 所以 現(xiàn)在需要拆箱 student[i]是不能點(diǎn)出name的
    Console .WriteLine(s.Name);
    }
    ArrayList ary = new ArrayList();
    ary.Add( "鳳姐" );
    ary.Add( "小月月" );
    //string類同樣是引用類型 但是這里有些特別
    string name = "鳳姐" ;
    Console .WriteLine(ary.Contains(name));//string比較的是內(nèi)容 所以返回true
    //根據(jù)學(xué)生姓名 獲取學(xué)生對(duì)象 雖然ArrayList可以實(shí)現(xiàn) 但是相當(dāng)?shù)膹?fù)雜 而且效率低下 所以接下來(lái)學(xué)習(xí)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的類來(lái)實(shí)現(xiàn)
    //Hashtable鍵值對(duì)形式 key value 相當(dāng)于字典 能根據(jù)學(xué)生的姓名快速的找到對(duì)象
    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);//錯(cuò)誤 字典中的關(guān)鍵字key 不允許重復(fù) 所以不能再添加犀利哥
    //移除 因?yàn)闆](méi)有索引 所以沒(méi)有RemoveAt()
    student.Remove( "小月月" );//根據(jù)key來(lái)移除
    student.Clear();
    student.ContainsKey( "鳳姐" );//判斷是不是含有這個(gè)鍵
    //遍歷 因?yàn)樽值錄](méi)有索引 所以不能使用for來(lái)遍歷 只能使用foreach
    //按key遍歷 經(jīng)常用
    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遍歷 對(duì)字典遍歷就是對(duì)字典的鍵值對(duì)進(jìn)行遍歷
    foreach (DictionaryEntry de in student) {
    Console .WriteLine(de.Key);
    Student s = de.Value as Student; //因?yàn)榈玫降氖莖bject類型 所以 還需要轉(zhuǎn)換才可以使用
    Console .WriteLine(s.Age);
    }
    Student s2 = student["小月月" ] as Student ;//通過(guò)姓名找到該對(duì)象 獲取其他的屬性
    if (s2 != null ) {
    Console .WriteLine(s2.Age);
    }
    Console .Read();
    }
    }
    }

    d、練習(xí)
    代碼如下:

    using System;
    using System.Collections;
    namespace _11_ArrayList練習(xí) {
    class Program {
    //還是那句話 理解題目之后 有了思路再開(kāi)始寫(xiě)code 思路最重要
    static void Main( string[] args) {
    //兩個(gè)集合{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把這兩個(gè)集合去除重復(fù)項(xiàng)合并成一個(gè)
    ArrayList ary1 = new ArrayList { "a" , "b" , "c", "d" , "e" };
    ArrayList ary2 = new ArrayList { "d" , "e" , "f", "g" , "h" };
    //遍歷兩個(gè)集合
    for (int i = 0; i < ary2.Count; i++) { //循環(huán)遍歷ary2元素與ary1逐個(gè)比較 如果存在相同值 則不添加 否則追加到ary1中
    if (!ary1.Contains(ary2[i])) {//有Contains方法 如果沒(méi)有 不知道有多復(fù)雜
    ary1.Add(ary2[i]);
    }
    }
    foreach (object item in ary1) {
    Console .Write(item);
    }
    //隨機(jī)生成10個(gè)1-100之間的數(shù)放到ArrayList中,要求這10個(gè)數(shù)不能重復(fù),并且都是偶數(shù)
    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)這句話 解決以下問(wèn)題
    arylist.Add(num); //為什么直接運(yùn)行總顯示第一個(gè)滿足條件數(shù)值 而單步調(diào)試卻顯示正確結(jié)果???
    }
    if (arylist.Count == 10) {
    break ;
    }
    }
    foreach (object item in arylist) {
    Console .WriteLine(item);
    }
    //有一個(gè)字符串是用空格分隔的一系列整數(shù),寫(xiě)一個(gè)程序把其中的整數(shù)做如下重新排列打印出來(lái):奇數(shù)顯示在左側(cè)、偶數(shù)顯示在右側(cè)。比如‘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); //因?yàn)閍ry1類型為object 所以無(wú)法使用string類的join方法實(shí)現(xiàn)字符拼接 后面學(xué)過(guò)泛型集合可以處理
    string newstr = ary3[0].ToString();//簡(jiǎn)單方式去掉空格
    for (int i = 1; i < ary3.Count; i++) {
    newstr += " " + ary3[i];
    }
    Console .WriteLine("原字符串:{0},篩選后的字符串{1}" , str, newstr + "test" );
    Console .Read();
    }
    }
    }

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    集合類Array List HashTable實(shí)例操作練習(xí)

    集合類Array List HashTable實(shí)例操作練習(xí):集合常用操作添加、遍歷、移除 命名空間System.Collections ArrayList 可變長(zhǎng)度數(shù)組,使用類似于數(shù)組 屬性 Capacity Count 方法 Add() AddRange() Remove() RemoveAt() Clear() Contains() ToArray() Hashtable 鍵值
    推薦度:
    標(biāo)簽: 集合 arraylist list
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 黑人巨大精品欧美一区二区| 野狼精品社区| 亚洲国产精品专区在线观看| 成人精品综合免费视频| 欧美日韩国产精品自在自线| 欧美精品免费在线| 久久久一本精品99久久精品88| 久久国产美女免费观看精品| 精品国精品国产| 久久久久99精品成人片试看| 日韩熟女精品一区二区三区 | 国产精品99久久久久久人| 亚洲综合精品网站| 久久国产成人亚洲精品影院 | 精品久久久久一区二区三区 | 永久免费精品影视网站| 久久精品国产99久久香蕉| 2021年精品国产福利在线| 高清免费久久午夜精品| 国产精品无码一区二区三区电影| 最新精品露脸国产在线| 精品久久久久久无码中文野结衣| 国产成人精品无人区一区| 亚洲综合精品一二三区在线| 国内精品51视频在线观看| 91精品国产自产在线观看永久| 久久99精品久久只有精品| 亚洲αv在线精品糸列| 一本一本久久a久久精品综合麻豆 一本色道久久88综合日韩精品 | 欧美日韩国产精品自在自线| 欧美日韩精品久久久久| 老司机午夜网站国内精品久久久久久久久| 99热日韩这里只有精品| 国产成人精品免高潮在线观看| 91精品国产自产在线观看| 办公室久久精品| 国产香蕉国产精品偷在线| 狠狠色伊人久久精品综合网| 国产欧美日韩综合精品二区| 精品国产热久久久福利| 欧美成人精品欧美一级乱黄一区二区精品在线|