stringbuffer类:是一个final类,不能被继承
string buffer的内容存放在堆中
string builder的方法,没有做互斥处理,即没有synchronized关键字,因此在单线程的情况下使用stringbuilder
hashset中的元素不能重复,且只能有一个为空,且存放顺序和取出顺序不一定一致
hashset不能添加相同的元素/数据,但是对象可以
1.Hashset的底层是hashmap
2.添加一个元素时,先得到hash值,然后转成索引值
3.找到存储数据表table,看这个索引位置是否已经存放元素
4.如果没有直接加入,如果有,调用equals比较,如果相同,就放弃添加,否则就加到最后
5.
Map接口:
1)map与collection并列存在,用于保存具有映射关系的数据
2)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
3)Map中的key不允许重复,但是value可以重复,同样key和value值可以为空
4)常用String类用作key的值,但是其他类也可以
5)key和value之间存在一对一的对应关系,可以使用key来得到对应的value的值
6)Map存放数据的一对K-V是放在一个HashMapNode中的,因为Node实现了Entry接口
hashtable:
1)存放的元素是键值对
2)hashtable的键和值都不能为空,否则会抛出NullPointerException
3)hashtable是线程安全的,hashmap是线程不安全的
hashtable底层是一个数组,初始大小为11,类型是hashtable$entry[],临界值为8,是容量11*0.75
string buffer的内容存放在堆中
string builder的方法,没有做互斥处理,即没有synchronized关键字,因此在单线程的情况下使用stringbuilder
hashset中的元素不能重复,且只能有一个为空,且存放顺序和取出顺序不一定一致
hashset不能添加相同的元素/数据,但是对象可以
1.Hashset的底层是hashmap
2.添加一个元素时,先得到hash值,然后转成索引值
3.找到存储数据表table,看这个索引位置是否已经存放元素
4.如果没有直接加入,如果有,调用equals比较,如果相同,就放弃添加,否则就加到最后
5.
Map接口:
1)map与collection并列存在,用于保存具有映射关系的数据
2)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
3)Map中的key不允许重复,但是value可以重复,同样key和value值可以为空
4)常用String类用作key的值,但是其他类也可以
5)key和value之间存在一对一的对应关系,可以使用key来得到对应的value的值
6)Map存放数据的一对K-V是放在一个HashMapNode中的,因为Node实现了Entry接口
hashtable:
1)存放的元素是键值对
2)hashtable的键和值都不能为空,否则会抛出NullPointerException
3)hashtable是线程安全的,hashmap是线程不安全的
hashtable底层是一个数组,初始大小为11,类型是hashtable$entry[],临界值为8,是容量11*0.75