java数组与集合

Posted 寻梦撑一支长蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的实现:

 

以上是关于java数组与集合的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin-数组与集合-List

java 数据结构:数组与集合

java里的数组和集合的区别是啥

java集合与包装类

java 集合与数组的互转方法,与源码分析

请问JAVA中啥是集合,和数组比有啥区别呢?谢谢