同步的话 要每次都会判断锁,效率会很低,一般在java1.2新版本 的集合容器里面 都是非同步的 楼主记住这个就可以啦 哈哈
例如 collection集合 中的 list 集合
ArrayList 底层是数组结构,非同步。查询快,1.2版本后出现的 为了提高效率。
linkedList 底层是链表结构,非同步,增删快,1.2版本后出现的 也是为了提高效率
Vectory 底层是数组结构 被ArrayList给替代了 是同步的,除了可以用迭代器取出元素外,
还可以使用枚举方式来取出元素。这个集合是java的老成员1.0就存在的。要频繁的判断锁所以导致效率低。
set集合
HashSet:底层是哈希表结构,非同步,查询特快,取出元素时候是没有顺序的,因为hashset底层来判断数据有特有的哈希
算法,此集合存储的元素没有重复的,因为hashCode()方法比较完两个元素,如果有相同的,那么会再次调用
equals方法来比较两个元素是否相同。,
TreeSet:底层结构是二叉树,也是非同步的,取出元素时候默认是按自然排序的。
揭下来是Map接口的集合:
这个接口里面的集合都是按一对 一对的来存储的。
map集合添加元素的方法是put()方法。,
map集合取出元素的方式是将map集合换成set集合 在使用迭代器取出,可以使用keyset() 或者是EntrySet()方法。
hashmap:底层是哈希表,非同步,允许null作为键,允许null作为值。
Treemap:底层是二叉树,非同步,默认是自然顺序,也可以使用比较器的方法。
hashtable:底层是哈希表,被hashmap所取代了,也是元老级别的,是同步的,不允许null作为键,不允许null作为值。
大概总结这些 希望楼主采纳嘿嘿
|