国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答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
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來源:懂視網(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ù)組沒多大的區(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);
//訪問集合第一個(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 通過索引檢索 因?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ù)雜 而且效率低下 所以接下來學(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的類來實(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)闆]有索引 所以沒有RemoveAt()
student.Remove( "小月月" );//根據(jù)key來移除
student.Clear();
student.ContainsKey( "鳳姐" );//判斷是不是含有這個(gè)鍵
//遍歷 因?yàn)樽值錄]有索引 所以不能使用for來遍歷 只能使用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 ;//通過姓名找到該對(duì)象 獲取其他的屬性
if (s2 != null ) {
Console .WriteLine(s2.Age);
}
Console .Read();
}
}
}

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

using System;
using System.Collections;
namespace _11_ArrayList練習(xí) {
class Program {
//還是那句話 理解題目之后 有了思路再開始寫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方法 如果沒有 不知道有多復(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)這句話 解決以下問題
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ù),寫一個(gè)程序把其中的整數(shù)做如下重新排列打印出來:奇數(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 所以無法使用string類的join方法實(shí)現(xiàn)字符拼接 后面學(xué)過泛型集合可以處理
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)等問題請(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
主站蜘蛛池模板: 国产第10页 | 五月婷婷在线视频 | 欧美亚洲另类综合 | 久久国产欧美日韩高清专区 | 99久久国产亚洲综合精品 | 美女视频黄a视频全免费应用 | 最新国产精品亚洲二区 | 国产一区二区成人 | 国产视频资源在线观看 | 午夜精品一区二区三区在线视 | 日韩专区在线 | 91精品久久久久 | 国产精品乱码一区二区三区 | 日韩毛片在线影视 | 一级全黄60分钟免费网站 | 国产免费精彩视频 | 欧美日韩国产亚洲人成 | 欧美日韩激情 | 欧美 韩国 精品 另类 综合 | 久久精品国产999久久久 | 成人国产一区二区三区精品 | 亚洲欧美第一 | 亚洲电影资源 | 永久毛片| 亚洲欧美天堂 | 欧美精品一区二区三区在线播放 | 国产播放器一区 | 热久久国产欧美一区二区精品 | 欧美日韩国产专区 | 国产成人亚洲综合 | 日本激情网址 | 97一区二区三区四区久久 | 亚洲午夜久久久久中文字幕 | 欧美不卡在线 | 日韩 欧美 综合 在线 制服 | 亚洲精品视频免费在线观看 | 亚洲一区二区三区免费 | 伊人精品国产 | 亚洲免费在线视频 | 亚洲午夜一区二区三区 | 精品在线免费播放 |