Vector
Vector
是比较早期的实现,底层同ArrayList
一样都是使用了可扩容的数组结构,扩容的方法有稍微的差别。Vector
中实现的方法几乎都是synchronized
同步方法,虽然是线程安全的但是性能上开销比较大,日常开发中已经很少会使用到了。基本上都被其他更好的选择代替了。这里记录一下,对比与ArrayList
。
我有一壶酒 足以慰风尘
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。(即:输入一个任意长度的m
,输出一个固定长度的值n
)
一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名x到首字母F(x)的一个函数关系),在首字母为W的表中查找“王”姓的电话号码,显然比直接查找就要快得多。这里使用人名作为关键字,“取首字母”是这个例子中散列函数的函数法则F(),存放首字母的表对应散列表。关键字和函数法则理论上可以任意确定。(维基百科)
TabLayout: 属于Material Design库下的控件,在Android
开发中使用频率还是比较高的。
1 | compile 'com.android.support:design:25.3.1' |
对于个人博客来说,GitHubPages 的域名确实太长了 (https://userName.github.io) ,所以申请一个个人域名是很有必要的。不仅方便自己记忆,更多的是归属感。再者,域名注册方便快捷,像阿里云、腾讯云 都是很不错的选择。不过,都需要实名认证,阿里云的认证就有点蛋疼了,花了三天时间。原本想绕过认证,又去注册了腾讯云,发现行不通。。。不过腾讯的认证要快很多,一天就行了。网上绑定的域名的教程很多,这里记录一下方便以后查看。