Array,ArrayList,Hashtable,SortedList

ArrayList

:System.Collections命名空间中定义的一个类;
优点:功能比Array类更加强大;
        大小是可以动态变化的;
         在ArrayList中可以很方便地把一个元素插入到指定的位置,也可以很轻松地删除一个元素;
缺点:ArrayList的效率与数组相比就要差一些
ArrayList类的方法:
(1) Add:向ArrayList中增加元素。
(2) Insert:在ArrayList的某个特定位置插入元素。
(3) Remove:删除ArrayList中的某个元素。
(4) RemoveAt:删除ArrayList中的某个特定位置的元素。
(5) IndexOf:返回ArrayList中某个元素的索引。
(6) Reverse:将ArrayList中的元素倒排。
(7) Sort:将ArrayList中的元素排序。

Hashtable是System.Collections.HashTable类定义的。
与传统的数组相比,它的优点与ArrayList一样。
但是由于它的键值不要求是一个整数,而这个数据必须是惟一的,所以在添加和删除元素的时候,需要花费更大力量的工作。
Hashtable中的排序是对值进行排序。

SortedList也可以保存键值与元素值的对应关系,并按照键值进行自动排序
SortedList类也是位于System.Collections命名空间中。

ContractedBlock.gif ExpandedBlockStart.gif Code
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    
void page_load(object serder, EventArgs e)
    {
        Label1.Text 
= "";  
    }
    
protected void Button1_Click(object sender, EventArgs e)
    {
        
int inti = -1;
        Array aryName 
= Array.CreateInstance(typeof(String), 5);
        aryName.SetValue(
"Jim"0);
        aryName.SetValue(
"Cindy"1);
        aryName.SetValue(
"Cathy"2);
        aryName.SetValue(
"Cindy"3);
        aryName.SetValue(
"Kate"4);
        Label1.Text 
= aryName.GetValue(1).ToString() + "<br/>" ;//输出指定下标的数族元素的值
        Label1.Text += Array.IndexOf(aryName, "Cathy").ToString() + "<br/>";//检索指定值的数族元素的下标
        do
        {
            inti 
= Array.IndexOf(aryName, "Cindy", inti + 1);//检索指定值的数族元素的下标
            Label1.Text += inti.ToString() + "<br>";
        } 
while (inti < Array.LastIndexOf(aryName, "Cindy"));//判断条件inti小于最后一个"Cindy"的下标值

        Array.Reverse(aryName);
//反转数组
        for (inti = 0; inti <= 4; inti++) Label1.Text += aryName.GetValue(inti) + " ";
        Label1.Text 
+= "<br>";
        Array.Sort(aryName);
//数组排序
        for (inti = 0; inti <= 4; inti++) Label1.Text += aryName.GetValue(inti) + " ";
        Label1.Text 
+= "<br>";
    }

    
protected void Button2_Click(object sender, EventArgs e)
    {
        ArrayList arylstName 
= new ArrayList();
        arylstName.Add(
"Jim");
        arylstName.Add(
"Cindy");
        arylstName.Add(
"Cathy");
        arylstName.Add(
"Linda");
        arylstName.Add(
"Kate");//
        show(arylstName);//
        arylstName.Insert(2"Mike");//在2处插入Mike
        show(arylstName);
        arylstName.Remove(
"Linda");//删除Linda
        show(arylstName);
        arylstName.RemoveAt(
3);//删除3处的元素
        show(arylstName);
    }
    
void show(ArrayList arylst)
    {
        
int inti;
        
for (inti = 0; inti < arylst.Count; inti++) Label1.Text += arylst[inti] + " ";
        Label1.Text 
+= "<br>";
    }

    
protected void Button3_Click(object sender, EventArgs e)
    {
        Hashtable hashtab 
= new Hashtable();
        hashtab[
"0101"= "数据结构";
        hashtab[
"3045"= "操作系统";
        hashtab[
"2178"= "编译原理";
        hashtab[
"1003"= "软件工程";
        hashtab[
"5645"= "C语言程序设计";
        
foreach (DictionaryEntry item in hashtab)
            Label1.Text 
+= item.Key + " " + item.Value + "<br>";
    
    }
    
protected void Button4_Click(object sender, EventArgs e)
    {
        SortedList slist 
= new SortedList();
        slist[
"0101"= "数据结构";
        slist[
"3045"= "操作系统";
        slist[
"2178"= "编译原理";
        slist[
"1003"= "软件工程";
        slist[
"5645"= "C语言程序设计";
        
foreach (DictionaryEntry item in slist)
            Label1.Text 
+= item.Key + " " + item.Value + "<br>";
    }
   
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Button ID="Button1" runat="server" Text="Array" OnClick="Button1_Click"/>
        
<asp:Button ID="Button2" runat="server" Text="ArrayList" OnClick="Button2_Click" />
        
<asp:Button ID="Button3" runat="server" Text="Hashtable" OnClick="Button3_Click" />
        
<asp:Button ID="Button4" runat="server" Text="SortedList" OnClick="Button4_Click" /><br />
        
<br />
        
<br />
    
    
    
<asp:Label ID="Label1" runat="server"></asp:Label><br />
    
<asp:Label ID="Label2" runat="server"></asp:Label></div>
    
</form>
</body>
</html>

转载于:https://www.cnblogs.com/jianlinglo/archive/2009/01/13/1375193.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值