Net学习日记_基础提高_8
HashTable储存数据理论
里面依旧是个Bucket数组。bucket是一个类。
table.Add("1","2");
Bucket b = new Bucket();
b.Key = "1";
b.Value = "2";
b.hash_coll = b.key.GetHashCode();
bukets[index] = b;
// 然后如何储存下标呢?
b.hash_coll%buckets.Length = ?(0-3)计算出的值放在b作为下标。
键值对是以键的hash值算出其所对应的下标。
ArrayList取值是一个一个遍历取值,但HashTable则是通过Key值来取值。
大数据量情况下,HashTable取值更快一些。
泛型集合
List<T> 可以指定储存类型。
HashTable里面也有泛型值,利用Dictionary;
Dictionary<T,T> dic = new Dictionary<T,T>();
foreach( KeyValuePair<string,Person> pair in dic)
{
Console.WriteLine(pair.Key + ":" + pair.Value);
}
异常捕捉
1.错误?
不符合语法规范。
2.异常
在运行的时候发生的。例子:操作文件的时候
只把有可能发生异常的代码用try抱起来。
try里的代码如果发生异常,就会立刻跳到catch里面去执行,执行完成之后,继续往下执行。
try代码如果有1句异常,就立刻跳到catch里面,不会执行try里面的代码。
catch后面可以用括弧写1个Exception变量用来接收发生异常的具体信息。
finally,不管有没有发生异常,finally里的代码都会被执行。
单例模式
1.私有化构造函数
2.提供1个私有的静态的Person类型的变量
3.提供1个公共的静态的方法,用于返回上面的变量。
这样情况,只能得到这个类的一个new;
子窗体的列子:
文件操作相关类
Path类(仅仅是操作字符串,不回去查询真正的路径问题)
1.strng newPah = Path.ChangeExtension(@"d:\1.txt",''avi');
更改路径字符串的后缀名,不会更改实际的文件
2.string newPath = Path.Combine(@"d:\12\","12.txt");
自动加斜杠,并合并多个字符串路径
3.string newPath = Path.GetDirectoryName(path);
得到文件路径所在的目录。如果本身就是一个目录路径,就直接放回这个目录。
4.string newPath = Path.GetExtension(path);
得到指定的文件路径的后缀名,如果不是一个文件路径,返回空串。
5. string newPath = Path.GetFileName();
得到指定路径的文件名(带后缀的)
6.Path.GetFileNameWithoutExtension(path)
只得到文件名,不要后缀
7. string p = "1.txt";
string newPath = Path.GetFullPath(path);
通过相对路径得到我们的绝对路径
相对路径:相对于当前本程序所在目录
8.Path.GetTempPath();
得到系统的临时目录。
Temp则是系统的临时目录,负责存储某些临时文件。
9.Path.GetTempFileName();
得到一个随机的系统文件名,这个文件已经创建好了
字符集
1.File.Create(@"d:\2.txt")
创建指定的文件,如果文件已存在,则覆盖。
2.File.AppendAllText(@“d:\2.txt”,"哈哈哈");
向已有的文本文件中追加字符。若没有这个文件,则创建一个新的。
3.File.Copy(@"d:\test\b\2.txt",@"d:\test\a\3.txt");
复制
4.File.Delete(@"d:\test\b\2.txt");
删除
5.File.Exists(@"d:\fan.txt");
判断是否存在
6.File.Move();
文件移动
7.string str = File.ReadAllText(@"d:\fan.txt",Encoding.Default);
读取
注意:
美国人 ASCII码 (0-127)
中国人 GB2312(0-127 后面,每2个字节,用来表示1个汉字)
扩展:GB108....(少数民族的字)
台湾省:BIG5(繁体)‘
...................................
最终:Unicode(ISO组织)(用4个字节表示1个字符)
进一步进化:UTF-8(用1-4个字节来表示)
电脑判断字符格式,是利用采用随机试试的状态,来打开文本的。
8.string[] lines = File.ReadAllLines(@"d:\fan.txt",Encoding.Default);
读取文本文档,读取每一行。