概要
名称 | 定义 | 说明 | 常用函数 |
列表 | List<T> | 列表 | Add,Insert,Sort,RemoveRange,RemoveAt |
队列 | Queue<T> | 前进后出 | Enqueue,Dequeue |
栈 | Stack<T> | 先进先出 | Push,Pop |
链表 | LinkedList<T> | 双向遍历 | Find(),AddAfter(),AddBefor(),Last,First |
有序链表 | SortedList<T,T> | 自动排序 | |
字典 | Dictionary<T,T> | 字典 | |
有序字典 | SortedDictionary<T,T> | 有序字典 | |
集 | HashSet<T> | 不能重复的集合 | Add |
集 | SortedSet<T> | 自动排序的不能重复集合 | Add |
代码
using System;
using System.Collections.Generic;
namespace 集合
{
class Program
{
static void Main(string[] args)
{
//列表.main();
//队列.main();
//栈.main();
//链表.mian();
//有序链表.mian();
//字典.mian();
有序字典.mian();
//集.mian();
Console.ReadLine();
}
}
class 列表
{
public void 函数()
{
Console.WriteLine("中文函数名");
}
public static void main()
{
Console.WriteLine("\n列表");
var list1 = new List<int>();
list1.Add(2);
list1.Add(5);
list1.Insert(0, 3);
list1.Insert(2, 7);
Console.WriteLine("3的位置:"+list1.IndexOf(3, 0));
Console.WriteLine("列表");
foreach (int i in list1)
{
Console.WriteLine(i);
}
list1.Sort();
Console.WriteLine("排序后的列表");
foreach (int i in list1)
{
Console.WriteLine(i);
}
list1.RemoveRange(0, 2);
list1.RemoveAt(0);
Console.WriteLine("删除后的列表");
for (int i = 0; i < list1.Count; i++)
{
Console.WriteLine(list1[i]);
}
}
}
class 队列
{
public static void main()
{
var query = new Queue<int>();
query.Enqueue(5);
query.Enqueue(7);
query.Enqueue(3);
while (query.Count > 0)
{
int a = query.Dequeue();
Console.WriteLine(a);
}
}
}
class 栈
{
Stack<int> mStacks = new Stack<int>();
public static void main()
{
栈 a = new 栈();
a.mStacks.Push(5);
a.mStacks.Push(7);
a.mStacks.Push(3);
Console.WriteLine("pop前的栈");
a.play();
a.mStacks.Pop();
Console.WriteLine("pop后的栈");
a.play();
int b = a.mStacks.Peek();
Console.WriteLine("Peek:" + b);
Console.WriteLine("Peek后的栈");
a.play();
bool ishas = a.mStacks.Contains(5);
Console.WriteLine("Contains:" + ishas);
}
private void play()
{
foreach(int i in mStacks)
{
Console.WriteLine(i);
}
}
}
class 链表
{
static LinkedList<int> mLinkLists = new LinkedList<int>();
public static void mian()
{
mLinkLists.AddFirst(5);
mLinkLists.AddLast(7);
LinkedListNode<int> a = mLinkLists.Find(5);
mLinkLists.AddAfter(a, 3);
mLinkLists.AddBefore(a, 1);
LinkedListNode<int> fist = mLinkLists.First;
Console.WriteLine("正序遍历");
while (fist.Next != null)
{
Console.WriteLine(fist.Value);
fist = fist.Next;
}
Console.WriteLine(fist.Value);
Console.WriteLine("倒序遍历");
LinkedListNode<int> last = mLinkLists.Last;
while (last.Previous != null)
{
Console.WriteLine(last.Value);
last = last.Previous;
}
Console.WriteLine(last.Value);
}
}
class 有序链表
{
static SortedList<int, int> mKeyValues = new SortedList<int, int>();
public static void mian()
{
mKeyValues.Add(3, 1);
mKeyValues.Add(1, 7);
mKeyValues.Add(2, 5);
Console.WriteLine("keys");
foreach(int i in mKeyValues.Keys)
{
Console.WriteLine(i);
}
Console.WriteLine("Values");
foreach (int i in mKeyValues.Values)
{
Console.WriteLine(i);
}
}
}
class 字典
{
public static void mian()
{
Console.WriteLine("Hello World!");
int a = 5;
a.GetHashCode();
Console.WriteLine(a.GetHashCode());
int b = 7;
int c = 7;
Console.WriteLine(b.GetHashCode());
Console.WriteLine(c.GetHashCode());
var dict = new Dictionary<int, string>()
{
[3] = "three",
[7] = "seven"
};
foreach (var i in dict.Keys)
{
Console.WriteLine(i);
}
foreach (var i in dict.Values)
{
Console.WriteLine(i);
}
}
}
class 有序字典
{
public static void mian()
{
var sortDictionary = new SortedDictionary<int, int>();
sortDictionary.Add(1, 2);
sortDictionary.Add(2, 1);
Console.WriteLine("Keys");
foreach (var i in sortDictionary.Keys)
{
Console.WriteLine(i);
}
Console.WriteLine("Values");
foreach (var i in sortDictionary.Values)
{
Console.WriteLine(i);
}
}
}
class 集
{
static HashSet<int> ts = new HashSet<int>();
static SortedSet<int> vs = new SortedSet<int>();
public static void mian()
{
ts.Add(1);
ts.Add(2);
ts.Add(2);
Console.WriteLine("HashSet");
hashDisplay();
vs.Add(2);
vs.Add(2);
vs.Add(1);
Console.WriteLine("SortedSet");
hashDisplay();
}
private static void hashDisplay()
{
foreach(int i in ts)
{
Console.WriteLine(i);
}
}
private static void sortDisplay()
{
foreach (int i in vs)
{
Console.WriteLine(i);
}
}
}
}
运行效果
列表
列表
3的位置:0
列表
3
2
7
5
排序后的列表
2
3
5
7
删除后的列表
7
队列
5
7
3
栈
pop前的栈
3
7
5
pop后的栈
7
5
Peek:7
Peek后的栈
7
5
Contains:True
链表
正序遍历
1
5
3
7
倒序遍历
7
3
5
1
有序链表
keys
1
2
3
Values
7
5
1
字典
Hello World!
5
7
7
3
7
three
seven
有序字典
Keys
1
2
Values
2
1
集
HashSet
1
2
SortedSet
1
2