zoukankan      html  css  js  c++  java
  • 对字符串类与几个集合类的总结

    1.string:

             1.是引用类型

             2.不可变(恒定性):当你重新赋值或者修改值的时候会开辟新的空间

             3.效率不高

             4.方法:

                       IndexOf("")/IndexOf(‘’)/IndexOf("",int startIndex):找到你指定的字符在源文件串中第一次出现的位置

                       LastIndexOf("")/LastIndexOf(‘’)/LastIndexOf("",int startIndex):找到你指定的字符(串)在源文件串中最后一次出现的位置

                       SubString(int startIndex):从你指定的位置一直截取到最后(索引从0开始计算)

                       SubString(int startIndex,int length):从你指定的位置一直截取,截取你指定的个数(索引从0开始计算,个数从1开始计算)

                       Split('')/Split(new char[]{},stringSplitOption.RemoveEmptyEntries):分隔字符串

                       string.Join("",string[]):可以将数组里面的值通过你所指定的字符连接

                       Replace("原始字符串","目标字符串")

                       ToUpper()/ToLower():大小写

                       Trim():去除左右空格

                       ToCharArray():将一个字符串转换为字符数组

     2.StringBuilder:是真正的引用类型

             1.创建:StringBuilder sb=new StringBuilder(""); //不能将字符串和StringBuilder任意赋值

             2.如何追加:Append();

                              AppendLine();

             3.在做赋值或者重新修改的时候不会开辟新的空间,效率相对比较高。 

    3.枚举:固定的一些值:字符串值、整型值

             1.public enum Gender{男=0,女=1}

             2.如果做类型转换:

                       int num=(int)Gender.男;

                       Gender gen=(Gender)Enum.parse(TypeOf(Gender),"男");

     4.Arraylist---List<T>:本质上来说,存储的数据是object[]

             1.长度是可变的  length:长度 capacity:容量,capacity不能小于实际内容的值,

    当你将length变大之后,capacity会自动变大。

             2.它的类型是object,---对于值类型,写入和读取的时候需要做装箱和折箱

             3.增加:Add(object)

             4.删除:Remove(object)  RemoveAt(int index)

             5.集合通过索引下标访问

             6.clear();清空

             7.Contains():判断是否包含某一个元素

             8.ToArray();--object

    不足:1.如果存储值类型,需要装箱和拆箱操作  2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换

    5.HashTable—Dictionary<Key,Value>:

             1.通过Add()方法添加元素,需要同时添加key和value

             2.通过key访问和删除

             3.数据其实是存放于一个burket[]中的

                   1.key

                   2.value

                   3.hash_coll:它是由key通过算法得到,用来标明数据存储的地址空间,在遍历的时候通过这个hash_coll值取出对应的value,所以它的存取效率非常高,因为不需要像arrlist做遍历

             4.有三种遍历方式:  

     foreach(object obj in ht.Keys)
    
                 {
    
                     Console.WriteLine(obj);
    
                    }
    
     foreach (object obj in ht.Values)
    
                 {
    
                         Console.WriteLine(obj);
    
                    }
    
     foreach (DictionaryEntry obj in ht)
    
             {
    
                Console.WriteLine(obj.key +”  :  “+obj.value);
    
             }
    View Code

            Hashtable的不足:1.如果存储值类型,需要装箱和拆箱操作  2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换

    6.总结:

    List<T>和Dictionary<key,value>规范了类型,在做遍历的时候不需要做类型转换,同时也保证了数据安全。

             1.list<T>----ArrayList:使用索引访问和删除,也可能通过对象删除,使用Add进行对象的添加,也可以通过AddRange()一次性添加多个元素

             2.HashTable---Dictionary<key,value>:通过key值访问和删除,遍历的时候可以选择遍历key或者遍历value.在添加元素的时候需要添加key值和value值。

  • 相关阅读:
    讨论: TDD in HTML & JavaScript 之可行性和最佳实践
    Enterprise Caching Summary
    NIntegrate SOA Practice – EAppointments Sample Application
    This is jqMVC# Definition & Summary
    LRU Caching Practice
    NIntegrate v0.9.0.1 released
    CrossDomain AJAX Enabled WCF Service
    突然发现想在博客园发起一个有价值的讨论其实很难
    Discuss some new features in WCF 4.0
    This is jqMVC# – CNBLOGS Google Tracer Sample
  • 原文地址:https://www.cnblogs.com/maidol/p/3137108.html
Copyright © 2011-2022 走看看