java数组与集合

不论是基本数据类型,还是引用数据类型的数据,都可以使用集合的形式对它们进行操作。

数组:

数组在java中是一个特殊类,

java中的基本数据类型包括:byte,char,short,int,long,float,double,boolean 8中,其他的都是引用数据类型。

数组创建的时候必须指定一个长度

数组的复制,不能用 = 来直接,因为这样的两个数组指向同一个内存空间,修改一个会对另一个产生影响。可以使用java中的System.arraycopy()来复制,也可以自己用方法遍历。

集合:

集合是用来存储其他对象的对象,大致组成如图所示:

列表(list):有序存放,允许重复,可以存放不同类型的对象        ArrayList,LinkedList

集合(set):无序存放,不允许重复,可存放不同类型的对象,    HashSet,LinkedSet      

SortedSet:排好序列的Set                                                             TreeSet(有序)

映射(Map):俗称键值对,如手机中的电话本                              HashMap

SortedMap:排好序列的Map                                                          TreeMap(有序)

Array在访问(查看)数据库时效率高,而在插入或者删除的时候效率低。

Linked在访问(查看)数据库时效率低,而在插入或者删除的时候效率高。

ArrayList在整体上效率高与LinkedList,因此大部分情况下都会选择ArrayList,除非很多时候需要进行插入和删除数据。

Vector是线程安全的,当遇到多线程时,也可以使用ArrayList,是用过Java提供的Collections类来转换成线程安全的类。

1.Linked的实现:

    底层使用双向链表来存储,

    每个节点都包含了对前一个和后一个元素的引用,

2.Hash的实现:

     使用数组来存储

     依赖hash算法来存储,我们知道每个对象都有它的hash值;

     HashSet底层是使用HashMap来存储的,在存储时按key-value来存储,只不过把值存在key中,而value则全部为null;

3.Tree的实现:

原文地址:https://www.cnblogs.com/ycmxm/p/7119830.html