美文网首页
6、集合类

6、集合类

作者: 24_yu | 来源:发表于2017-11-03 18:30 被阅读0次

[集合的特点和实现](http://blog.csdn.net/qq_25868207/article/details/55259978

一、认识集合类

集合框架接口:Collection、List、Set、Map、Iterator


image.png
image.png

其中分为:list:链表、数组列表;set:散列集、树集;map:映射;队列
链表:LinkedList,一种可以在任何位置进行高效插入和删除操作的有序序列
数组列表:ArraysList,一种可以动态增长缩减的索引序列
散列集:HashSet,一种没有重复元素无序集合
树集:TreeSet,一种有序集(没有重复元素)
HashMap:一种键值存储关联的映射表
TreeMap:一种键值有序排列的映射表

二、 一些需要注意的问题

1、List 和Set都是继承Collection接口的,map不是
2、List特点:元素有存放顺序,元素可重复;Set特点:元素存放没有顺序,元素不可重复(注意:元素虽然无序放入,但是元素在set中的位置是由该元素的HashCode决定的,其位置其实是固定的,加入set的Object必须定义equals()方法,另外list支持for循环,就是通过下标来遍历,也可以使用迭代器)
3、set和list相比:
set:检索元素效率低,删除和插入效率高,插入和删除不会引起元素位置的改变
list :和数组类似,list可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变
4、线程安全和非线程安全
安全:HashTable、StringBuffer
非安全:LinkedList、ArrayList、HashSet、HashMap、StringBuilder

●Array和ArrayList的区别:
Array可包含基本数据类型和对象类型,ArrayList只能包含对象类型;
array大小是固定的,ArrayList的大小是动态变化的。

●ArrayList和LinkedList的区别:
各自特性:
__ArrayList : 是一由连续的内存块组成的数组,范围大小可变的,当不够时增加为原来1.5倍大小,数组。 :调用trimToSize方法,使得存储区域的大小调整为当前元素数量所需要的空间大小,垃圾回收器将会回收多余存储空间。
__LinkedList : 是由随机内存块通过指针连接起来的,范围大小可变的,当不够时增加为原来2倍大小,一个双向链表,
结论一 : ArrayList集合访问查找比LinkedList集合速度快,
结论二 : LinkedList集合增删元素比ArrayList集合速度快,后者会引起其他元素位置的改变

●HashMap和Hashtable的区别:
两者都实现了map接口,HashMap允许键和值为null,Hashtable不允许键或者值为Null.
Hashtable是同步的,而HashMap是异步的。因此前者更适合于多线程,后者适用于单线程环境。

●HashSet和TreeSet区别:
HashSet由hash表来实现的,因此元素时无序的,增加,删除操作的时间复杂度是常数O(1).
TreeSet是由树形的结构来实现的,里面元素时有序的。删除增加操作的时间复杂度是O(logn).

●HashMap中的hashCode()和equals()方法的重要性:
当进行增加操作时,hashCode()用来定位要存放的位置,如果该位置上存在数据了,那么久通过equals()用来判断数据是否相等。

相关文章

  • 6、集合类

    [集合的特点和实现](http://blog.csdn.net/qq_25868207/article/detai...

  • Java集合

    集合概述 •Java提供集合类,集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于jav...

  • 14. 集合类

    1. Kotlin的集合类 Kotlin的集合类分为可变集合类和不可变集合类 2. 常用的三种集合类 主要有三种:...

  • Java 容器 - 一文详解HashMap

    Map 类集合 Java Map类集合,与Collections类集合存在很大不同。它是与Collection 类...

  • 7.可变集合类 和 不可变集合类的 copy 和 mutable

    整个《面试题》都是对[2017年6月iOS招人心得(附面试题)]的整理 1.可变集合类 和 不可变集合类的 cop...

  • Collection 集合类

    Collection 集合类 java.util包中提供了一些集合类,这些集合类又称为容器;集合类和数组的区别在于...

  • java集合类-6-CopyOnWrite

    CopyOnWriteArrayList 概述 JDK 1.5出现 写时复制容器 添加元素时,不直接往当前容器添加...

  • Java集合类-集合类图谱

    数据结构在计算机知识体系中的重要性无需赘言,Java的jdk的集合类正是学习数据结构的很好素材。如果能把jdk的集...

  • 第10章 集合类与泛型 《Kotin 编程思想·实战》

    第10章 集合类与泛型 10.1 Kotlin集合类10.1.1 不可变集合类10.1.1.1 List10.1....

  • java二十四(Stream)1.8新特性

    一、Stream类集合拥有更好迭代器作用(类似js ES6操作数组的方法map、filter等), 二、集合转化为...

网友评论

      本文标题:6、集合类

      本文链接:https://www.haomeiwen.com/subject/eirtmxtx.html