C#基礎-058 List集合、HashSet集合、HashTable集合、StringBuilder與String執行效率比較
阿新 • • 發佈:2019-02-03
static void Main(string[] args)
{
ArrayList list = new ArrayList();
//獲取集合元素的數量
Console.WriteLine(list.Count);
//向集合中新增資料
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);
list.Add(6);
list .Add(7);
Console.WriteLine(list.Capacity);
list.Add(new Student());
list.AddRange(list);
bool ret = list.Contains(100);
Console.WriteLine(ret);
ArrayList arraylist = list.GetRange(1, 3);// 3 4 5
//foreach 是對集合做修改 遍歷操作 禁止對foreach做刪除操作
foreach (var item in arraylist)
{
if ((int)item == 4)
{
list.Remove(item);
}
}
int index = list.IndexOf(4);
Console.WriteLine(index);
list.Insert(1,100);
list .RemoveAt(1);
list.Reverse();
list.Sort();
Console.WriteLine("----------");
foreach (var item in list)
{
Console.WriteLine(item);
}
}
static void Main(string[] args)
{
HashSet<int> hs = new HashSet<int>();
//hs.Add(1);
//Console.WriteLine(hs.Count);
//hs.Add(2);
//Console.WriteLine(hs.Count);
//hs.Add(1);
//Console.WriteLine(hs.Count);
Random random = new Random();//自動剔除相同的資料
while (hs.Count < 100)
{
hs.Add(random.Next(1, 101));
}
foreach (var item in hs)
{
Console.WriteLine(item);
}
}
static void Main(string[] args)
{
//在 Hashtable 這樣的集合中 儲存的順序是亂序的
Hashtable ht = new Hashtable();
ht.Add("北京","重度霧霾");
ht.Add("上海", "梅雨");
ht.Add("鄭州","霾");
Console.WriteLine(ht["北京"]);
ht["石家莊"] = "123";
bool ret = ht.Contains("石家莊");
Console.WriteLine(ret);
ht.Remove("鄭州");
ret = ht.Contains("鄭州");
Console.WriteLine(ret);
foreach (var item in ht.Keys)
{
Console.WriteLine(item +" "+ht[item]);
}
}
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append("12");
sb.Append(12);
sb.Append(new Student());
sb.AppendFormat("{0}***{1}***{2}",12,13,45);
sb.Insert(0, "YY");
sb.Remove(0,2);
sb.Replace("1991","1998");
sb.Replace("19","2000",4,4);
Console.WriteLine(sb.Capacity);
Console.WriteLine(sb.Append(sb));
Console.WriteLine(sb);
}
StringBuilder與String的效率比較:
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
string ret = string.Empty;
StringBuilder sb = new StringBuilder();
sw.Start();
for (int i = 0; i < 10000000; i++)
{
// ret += i;
sb.Append(i);
}
sw.Stop();
Console.WriteLine("總時間是:{0}",sw.Elapsed);
// Console.WriteLine(ret);
}