Java的API调用优化——容器

来源:互联网 发布:美国登月真假 知乎 编辑:程序博客网 时间:2024/06/14 13:15

1.Java的基于数组的容器都实现了RandomAccess(随机访问),而基于链表的都没实现。
2.Vector是一个动态增长的数组,但是这个数组的增长是复制性的,增长时必须要重新创建一个数组向量,将原数据复制过去,再释放掉元数据。其增长是和增长幅度挂钩的。
3.Hashtable有两个参数影响其性能:初始容量和加载因子。初始容量是哈希表的初始大小,加载因子是哈希表扩增前最多可达到的大小。
4.JDK的容器类发展方向:用Array List代替Vector;用HashMap代替Hashtable;用LinkList代替Stack(Stack最初是用Vector实现的)。
5.HashSet实际上是一个封装了HashMap和SortMap的类,其内部存储用HashMap(无序),而SortMap(大小顶堆)确保顺序。
6.EnumMap之所以在高访问压力下比HashMap获得更出色的性能,原因在于EnumMap底层用数组代替了哈希表(常量值数量是固定的,数组长度也是有限的),且使用的堆内存比HashMap要少一位,并且HashMap对于每一个键值都要调用hashCode方法和equals方法。而EnumMap基于enum类,其比较时更加方便(转换成数字)。
7.LinkedhashMap在HashMap的基础上增加了记录顺序的链表,顺序基于元素进入集合的顺序或者被访问的顺序,用空间换时间性能。
8.TreeMap比HashMap具有更强大的功能(实现了SortedMap,大小顶堆,可以对元素进行排序),但性能略低于HashMap。
9.StringBuffer可以用来实现对象序列化。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 资金密码忘记了怎么办? 大华电子秤称重不准怎么办 股票暂停上市散户怎么办 入股公司赔钱了怎么办 家里被虚报脱贫怎么办 技术入股想退股怎么办 想开店没有资金怎么办 想开店资金不够怎么办 要开店没资金怎么办 想开店缺少资金怎么办 刚刚开店没有资金怎么办 有专利没钱投资怎么办 肉牛养殖没资金怎么办 入股分红想撤资怎么办 入股后想退股怎么办 土地使用权到期后怎么办 员工辞职扣工资怎么办 公司老板要跑路不发工资怎么办 撤销撤多了怎么办 中葡股份跌停怎么办 厕所里有蟑螂怎么办 机票生日写错怎么办 户口出生地错了怎么办 护照号填写错误怎么办 鱼缸潜水泵声音大怎么办 股票跌到没钱了怎么办 新浪股票直播室打不开怎么办 st天业股份怎么办 日月股份破发怎么办 凌晨到达泰国机场怎么办 中介收钱不退钱怎么办 新车办行驶证怎么办 被云南信托扣款怎么办 贷款人不还款担保人怎么办 新三板摘牌股份怎么办 新三板摘牌股票怎么办 被st的股票怎么办 手机进水有雾气怎么办 手机进水有水印怎么办 星驿付大pos跳码怎么办 老电脑LOL卡怎么办