400-650-7353
您所在的位置:首页 > IT干货资料 > java > 【Java基础知识】Java数组与集合使用方法

【Java基础知识】Java数组与集合使用方法

  • 发布: java培训
  • 来源:Java培训干货资料
  • 2020-04-03 18:23:08
  • 阅读()
  • 分享
  • 手机端入口

在java中我们可以用数组或者集合将一些数据集中起来进行管理,但是数据和集合也有一些不同的特点;

当我们创建数组的时候,我们需要指定数组的大小,也就是需要说明这个数据可以存多少数据,并且指定所存数据的类型,比如我们要存int类型或者其他类型的,当我们规定好存储的大小和类型之后,程序会为我们在内存中开辟一块连续的存储空间,并且只能保存我们之前规定的数据类型,不可以存放其他类型;使用数组的时候,我们修改和获取数组里面的内容速度会很快,但是因为分配的内存是连续的,当我们需要在中间插入一个数据的时候,需要将后面的数据一个一个的往后移动,然后在插入的位置保存需要插入的值,这样插入效率就会比较低了;

在java中集合List是一个接口,常用的实现List的类有ArrayList,LinkList,Vector;这三个底层的实现也是有不同的区别;

ArrayList底层的实现是动态数组,所以ArrayList对于数据的查询,效率会比较高,但是对于数据的插入效率会比较低;

【Java基础知识】Java数组与集合

LinkList底层的实现是双向链表,链表的实现原理是一个节点连接着下一个节点,所以一个链表在内存中的地址并不是连续的,当我们需要在第N个位置之后插入一个数据的时候,程序可以在空闲的内存中将数据保存,然后将这个数据的下一个节点指向第N个位置的下一个节点,然后重新将第N个位置数据的下一个位置指向新创建的数据,这样就将新的数据插入到了链表中,这种形式不需要移动插入位置的后边数据,仅仅只是修改了节点的指向,所以链表插入效率会比较高,但是如果要查询的时候,就需要从头结点往后一个一个的查找,知道找到所要查找的数据,所以链表的查询效率相对比较低了;

Vector的实现也是基于数据实现的(类似ArrayList),但是他与ArrayList不同的点在于,Vector是线程安全的,所以在效率方面会比ArrayList低一些;

虽然ArrayList是基于数据实现的,但是数组一旦确定大小之后,以后是不可以再次修改保存数据量大小的,但是ArrayList并没有大小的限制,他是基于数据进行动态扩容的,所以效率方面数组的效率相对于ArrayList高一些;

在我们开发中,如果确定空间大小的,我们可以使用数据来进行保存,如果不确定大小的数据可以使用List进行保存数据;然后根据数据查询频率和增删频率的不同,可以选择ArrayList和LinkList;

文章“【Java基础知识】Java数组与集合使用方法”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2020/48579.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME