ArrayList的操作

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
public class CollectionTest
{
/*集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)
队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
stack queue list hashtable
大多数集合类实现了相同的接口
集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等
这些类创建Object类的对象的集合。在C#中,Object类是所有数据类型的基类
各种集合类和他们的用法
下面是各种常用的System.Collection命名空间的类,点击下main的连接查看细节
类 描述和用法
动态数组(ArrayList) 它代表了可被单独索引的对象的有序集合
它基本上可以替代一个数组,但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目
动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项
哈希表(Hashtable) 它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值
哈希表中的每一项都有一个键/值对.键用于访问集合中的项目
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素,使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
使用键来访问集合中的元素 使用键来访问集合中的元素 使用键来访问集合中的元素
哈希表的每一项都有一个键、值对 哈希表的每一项都有一个键、值对
哈希表的每一项都有一个键/值对 哈希表的每一项都有一个键值对
排序列表(SortedList) 它使用键和索引来访问列表中的项
排序列表时数组和哈希表的组合 它包含了一个可使用键或索引访问各项的列表
如果您使用索引访问各项,则它是一个动态数组(ArrayList)如果您使用键访问各项,则它是一个哈希表
(Hashtable)集合中的各项总是按键值排序
堆栈(Stack) 它代表了一个后进先出的对象集合
当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素
当您从列表中移除一项时,称为弹出元素
队列(Queue) 它代表了一个先进先出的对象集合 当您需要对各项进行先进先出的访问,则使用队列
当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队
Hahtable类的方法和属性
属性 描述
Count 获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
获取Hashtable中包含的键值对个数
IsFixedSize 获取一个值 表示Hashtable是否具有固定大小
IsFixedSize 获取一个值表示Hashtable是否具有固定大小
IsFixedSize 获取一个值表示Hashtable是否具有固定大小
IsFixedSize 获取一个值表示Hashtable是否具有固定大小
IsFixedSize 获取一个值表示Hashtable是否具有固定大小
IsFixedSize 获取一个值表示Hashtable是否具有固定大小
IsFixedSize获取一个值表示Hashtable是否具有固定大小
Item 获取或设置与指定的键相关的值
Keys 获取一个ICollection 包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
Keys获取一个ICollection包含Hashtable中的键
*/

    /*Count 获取Hashtable中包含键值对个数
     IsFixedSize获取一个值表示Hashtable是否具有固定大小
     IsReadOnly 获取一个值表示Hashtable是否只读
     Item 获取或设置与指定的键相关的值
    Item获取或设置与指定的键相关的值 
    序号 方法名&描述
    1 public virtual void Add(object key,object value)
    向Hashtable添加一个带有指定的键和值的元素
    1public virtual void Add(object key,object value)
    向Hashtable添加一个带有指定的键和值的元素
    2public virtual void Clear()从Hashtable中移除所有的元素
    3public virtual bool ContainsKey(object key)
    判断Hashtable是否包含指定的键
    4public virtual  bool ContainsValue(object value)
    判断Hashtable是否包含指定的值
    5public virtual void Remove(object key)
    从Hashtable中移除带有指定的键的元素
    public virtual void Remove(object key)
    从Hashtable中移除带有指定的键的元素
    public vritual void Remove(object key)
    从Hashtable中移除带有指定的键的元素
    从Hashtable中移除带有指定键的元素
     */

    /*
     动态数组(ArrayList)代表可被单独索引的对象的有序集合,基本可以替代数组,与数组不同的是它可以在指定的索引位置添加和移除项目
    动态数组重新计算它的大小
    它也允许在列表中进行内存分配、增加、搜索、排序各项
    Capacity 获取或设置ArrayList可以包含的元素的个数
    Count获取ArrayList中实际包含的元素的个数
    IsFixedSize获取一个值表示ArrayList是否具有固定大小
    IsSynchronized 获取一个值,表示访问ArrayList是否同步(线程安全)
    表示访问ArrayList是否同步(线程安全)IsSynchronized IsSynchronized IsSynchronized IsSynchronized
    表示访问ArrayList是否同步(线程安全)IsSynchronized IsSynchronized IsSynchronized IsSynchronized
    表示访问ArrayList是否同步(线程安全)IsSynchronized IsSynchronized IsSynchronized IsSynchronized
    表示访问ArrayList是否同步(线程安全)是否同步线程安全 是否同步线程安全
    先说明一下什么是同步和异步
    同步方法解决问题是比如订票系统每个座位就一张票如果用异步方法就有可能出现同一张票被多人购买
    这也是所谓的数据脏读
    java同步方法简单理解就是多个执行任务执行同一方法按顺序执行等待第一次执行完成在执行下一次
    异步方法则是不等待既不管第一次方法是否执行完成都会在此执行临界区
    表示访问ArrayList是否同步(线程安全) 表示访问ArrayList是否同步(线程安全) 表示访问ArrayList是否同步(线程安全)
    Item[Int32] 获取或设置指定索引处的元素
    SyncRoot 获取一个对象用于同步访问ArrayList
    SyncRoot获取一个对象用于同步访问ArrayList 获取一个对象用于同步访问ArrayList
    SyncRoot获取一个对象用于同步访问ArrayList 获取一个对象用于同步访问ArrayList
    SyncRoot获取一个对象用于同步访问ArrayList获取一个对象用于同步访问ArrayList
    SyncRoot获取一个对象用于同步访问ArrayList获取一个对象用于同步访问ArrayList
    SyncRoot获取一个对象用于同步访问ArrayList
    下表列出了ArrayList类的一些常用的方法
    序号    方法名      &描述
    1 public virtual int Add(Object value) 在ArrayList末尾添加元素
    2 public virtual void AddRange(ICollection c)在ArrayList的末尾添加ICollection的元素
    3public virtual void Clear() 从ArrayList中移除所有元素
    4public virtual bool Contains(object item)判断某个元素是否存在在ArrayList中
    5public virtual ArrayList GetRange(int index,int count)返回一个ArrayList 表示源ArrayList中元素的子集
    6public virtual int IndexOf(object) 返回某个值在ArrayList中第一次出现的索引,索引从0开始
    7public virtual void insert(int index,object value)在ArrayList指定的索引处插入元素
    8public virtual void InsertRange(int index,object value)在ArrayList指定的索引处,插入某个集合元素
    9public virtual void Remove(Object obj)从ArrayList中移除第一次出现的指定对象
    10public virtual void RemoveAt(int index)移除ArrayList指定的位置的元素
    11public virtual void RemoveRange(int index,int count)移除ArrayList某个范围的集合
    12public virtual void Reverse() 逆转ArrayList元素的顺序
    13public virtual void setRange(int index,ICollection c)
    复制某个集合的元素到ArrayList中某个范围的元素上
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素上
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素上
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素上
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素上
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素
    public virtual void setRange(int index,ICollection c)复制某个集合的元素到ArrayList中某个范围的元素
    setRange setRange setRange setRange setRange setRange setRange setRange setRange setRange setRange
    14public virtual void Sort()对ArrayList中的元素进行排序
    15public virtual void TrimToSize();设置容量为ArrayList中元素的实际个数
    public virtual void TrimToSize();设置容量为ArrayList中元素的实际个数
     */
    static void Main(string[] args)
    {
        ArrayList arrayList = new ArrayList();
        Console.WriteLine("Adding some numbers");
        arrayList.Add(45);
        arrayList.Add(78);
        arrayList.Add(33);
        arrayList.Add(56);
        arrayList.Add(12);
        arrayList.Add(23);
        arrayList.Add(9);
        Console.WriteLine("Capacity:{0}",arrayList.Capacity);
        Console.WriteLine("Count:{0}",arrayList.Count);

        Console.WriteLine("Content:");
        foreach (int item in arrayList)
        {
            Console.Write(item+" ");
        }
        Console.WriteLine();
        Console.WriteLine("Sorted Content:");
        arrayList.Sort();
        foreach (var item in arrayList)
        {
            Console.Write(item+" ");
        }
        Console.WriteLine();
        Console.ReadKey();
        //Hashtable hashtable = new Hashtable();
        //hashtable.Add("001","A");
        //hashtable.Add("002","B");
        //hashtable.Add("003","C");
        //hashtable.Add("004","D");
        //hashtable.Add("005","E");
        //hashtable.Add("006","F");
        //hashtable.Add("007","G");
        //if (hashtable.ContainsValue("F"))
        //{
        //    Console.WriteLine("This Student is already in the list");
        //}
        //else
        //{
        //    hashtable.Add("008","F");
        //}
        获取键的集合
        //ICollection collectionKeys =   hashtable.Keys;
        //foreach (var item in collectionKeys)
        //{
        //    Console.WriteLine(item);
        //}
        //Console.ReadKey();
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值