hashset与hashmap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。
总结二:java集合总结
set:不区分元素的顺序,不允许出现重复的值
list:区分元素的顺序,且允许出现重复的值
map:采用key——values的,不允许有重复的键,每个键最多对应一个值
java集合只能保存引用类型的数据,是对象的引用
collection接口描述set和list集合类型的根接口
相关方法:
add()如果增加重复元素,则增加失败,返回false
contains()判断是否包含有某个元素
iterator()返回成一个迭代器
list可以对元素的插入位置进行精确控制,根据元素索引访问元素等功能
set(index,elemetn)修改指定索引下的元素
map关系集的形式查看某个映射的内容
put(objectkey,objectvalues)增加一个新的值
get(objectkey)查找key上面的值
setkeyset()将所有的key返回到一个set中
collectionvalues()将所有的值返回到一个collection集合中
collection——set——hashset/treeset
collection--list——arraylist/vector——stack(栈)
map——hashmap/treemap/hashtable——properties
stringtokenizer——enumeration(不是很常用)
arraylist类实现了list接口,用于表述长度可度的数组列表
他允许取值为null,除实现了list接口的所有功能外,还有以下方法
arraylist()创建一个容量为10的null的列表
arraylist()创建一个指定长度的null的列表
ensurecapacity(intmincapacity)增加此arraylist实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
trimtosize()将此arraylist实例的容量调整为列表的当前大小(也就是说,出除后面为null的值)
相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16964.html
vector也实现了list接口,其描述的也是可变长度的对象数组
是同步(线程安全的),运行效率要低一些,主要用于多线程环境中,而arryalist是不同步的,适合在单纯种环境中使用
vector()创建一个长度为10的vector容器
elementat(intindex)得到指定的值
addelement(objectojb)增加值
removeelementat(intindex)移除指定的值
insertelecentat(eobj,index)在指定位置查入相关的值
removeelement(objectobj)删除值,如果有重复的只删除第一次出现的
object[]toarray()将当前集合中的元素全部返回到一个数组中
相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16965.html
stack继承了vector,对应了数据结构中的“后进先出”存储和操作数据结象栈
stack()创建一个空的栈
push()在当前栈中压入一个数据,把项压入堆栈顶部。