java面试题23 牛客ArrayLists和LinkedList的区别,下述说法正确的有?

java面试题23 牛客ArrayLists和LinkedList的区别,下述说法正确的有?

A ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
B 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
C 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
D ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。

懵逼树上懵逼果,懵逼树下你和我

查询
LinkedList查询用的遍历,AyyayList查询用的是数组下标,所以对于查询ArrayList性能高于LinkedList
新增
新增在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快
测试一下新增在末尾

public static void main(String[] args){int flag = 100000;ArrayList aList = new ArrayList(flag);LinkedList lList = new LinkedList();Long start1 = System.currentTimeMillis();for(int i=0; i<flag;i++)aList.add("a");System.out.println(System.currentTimeMillis() - start1);Long start2 = System.currentTimeMillis();for(int i=0; i<flag;i++)lList.add("a");System.out.println(System.currentTimeMillis() - start2);
}


测试一下新增在中间

public static void main(String[] args){int flag = 10000;ArrayList aList = new ArrayList(flag);LinkedList lList = new LinkedList();Long start1 = System.currentTimeMillis();for(int i=0; i<flag;i++){if(i < flag / 2)aList.add("a");elseaList.add(flag / 2, "a");}System.out.println(System.currentTimeMillis() - start1);Long start2 = System.currentTimeMillis();for(int i=0; i<flag;i++){if(i < flag / 2)lList.add("a");elselList.add(flag / 2, "a");}System.out.println(System.currentTimeMillis() - start2);
}


测试一下新增在开始

public static void main(String[] args){int flag = 10000;ArrayList aList = new ArrayList(flag);LinkedList lList = new LinkedList();Long start1 = System.currentTimeMillis();for(int i=0; i<flag;i++){aList.add(0 ,"a");}System.out.println(System.currentTimeMillis() - start1);Long start2 = System.currentTimeMillis();for(int i=0; i<flag;i++){lList.add(0."add");}System.out.println(System.currentTimeMillis() - start2);
}


修改
修改在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快
删除
ArrayList比LinkedList快

看完我们的代码解释,很容易理解我们的是正确的

我们在看看别人的解释

A. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  //正确,这里的所谓动态数组并不是那个“ 有多少元素就申请多少空间 ”的意思,通过查看源码,可以发现,这个动态数组是这样实现的,如果没指定数组大小,则申请默认大小为10的数组,当元素个数增加,数组无法存储时,系统会另个申请一个长度为当前长度1.5倍的数组,然后,把之前的数据拷贝到新建的数组。

- ---------------------------------------------------------------------

B. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。//正确,ArrayList是数组,所以,直接定位到相应位置取元素,LinkedLIst是链表,所以需要从前往后遍历。

-----------------------------------------------------------------------

C. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。//正确,ArrayList的新增和删除就是数组的新增和删除,LinkedList与链表一致。

-------------------------------------------------------------------------

D. ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。//正确,因为ArrayList空间的增长率为1.5倍,所以,最后很可能留下一部分空间是没有用到的,因此,会造成浪费的情况。

答案为A B C D
我是歌谣,有什么不合理之处欢迎之处,一起学习,共同进步。喜欢敲代码,没事刷刷题。

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制作特殊字的脚本

<html> <head> <title>特殊文字的制作</title> <meta http-equiv"Content-Type" content"text/html; charsetgb2312"> </head> <body text#00ff00 bgColorblack οnlοade(d.q)> <center>特殊文字的制作…

cursor.execute(sql) 执行结果集是有记录的 但是num=cursor.rownumber 返回值为0

开始cursor.execute(.join(str(sql).strip())) #count cursor.rowcount; numcursor.rownumber修改后&#xff1a;cursor.execute(.join(str(sql).strip())) cursor.fetchall(); #count cursor.rowcount; numcursor.rownumber print(---------------) print (cursor.rownumber) …

Java Web 应用概述

1、java Web 应用是建立在java语言基础上的企业web应用系统&#xff0c;oracle公司根据行业发展和便于开发制定了一套规范&#xff1a;Java EE规范&#xff0c;截至到当前&#xff08;2016.3.11&#xff09;是java EE7规范&#xff0c;其中包括大家常见的Java Servlet 、JavaSe…

java面试题24 关于Java中的数组,

java面试题24 关于Java中的数组&#xff0c;下面的一些描述&#xff0c;哪些描述是准确的&#xff1a;&#xff08; &#xff09; A 数组是一个对象&#xff0c;不同类型的数组具有不同的类 B 数组长度是可以动态调整的 C 数组是一个连续的存储结构 D:一个固定长度的…

[开发技巧3]不显示报表直接打印

水晶报表9.2VB6 使用Application可以进行打印 在将数据赋给报表模板后&#xff0c;调用PrintOut方法 赋给报表数据objCRReport.Database.SetDataSource rst 此句打印&#xff0c;会出现打印提示框objCRReport.PrintOut 不提示&#xff0c;直接打印到默认打印机CallobjCRReport.…

python中cursor操作数据库(转)

原文出处&#xff1a;http://doudouclever.blog.163.com/blog/static/175112310201284115340663/python 操作数据库&#xff0c;要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe&#xff0c;然后我们就可以使用MySQLdb这个包进行数据库操作了。 操作步…

java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大。

java面试题25 在程序代码中写的注释太多&#xff0c;会使编译后的程序尺寸变大。 A:正确 B:错误 蒙蔽树上蒙蔽果&#xff0c;蒙蔽树下你和我 拿到这道题&#xff0c;我觉得说的贼有道理&#xff0c;注释太多&#xff0c;尺寸变大。无疑与就和驾考 一样&#xff0c;遇到路人…

implicit request ?

不了解或不會Action在play framework很難再深入下去, 這是http request的點 以下這段代碼困擾我很久, 如今我才剛了解 Action { implicit request >Ok("Got request [" request "]") } 原文這麼說 It is often useful to mark the request parameter …

SQL开发中容易忽视的一些小地方( 三)

目的&#xff1a;这篇文章我想说说我在工作中关于in和union all 的用法. 索引定义 &#xff1a; 微软的SQL SERVER提供了两种索引&#xff1a;聚集索引(clustered index&#xff0c;也称聚类索引、簇集索引)和非聚集索引(nonclustered index&#xff0c;也称非聚类索引、非簇集…

java面试题26 java语言的下面几种数组复制方法中,哪个效率最高?

java面试题26 java语言的下面几种数组复制方法中&#xff0c;哪个效率最高&#xff1f; A for 循环逐一复制 B System.arraycopy C Array.copyOf D 使用clone方法 效率&#xff1a;System.arraycopy > clone > Arrays.copyOf > for循环 1、System.arraycopy的用法…

pycharm使用笔记2-远程连接(转)

原文地址:https://blog.csdn.net/jinxiaonian11/article/details/70208920 随着科技的发展&#xff0c;远程办公已经是一种趋势&#xff0c;远程开发能力对于每一个程序员来说都是必不可少的。有时候就算在公司&#xff0c;在进行开发的时候有许多的数据都是储存在服务器上的&a…

第三章 使用属性升级MyBank

1、C#中的访问修饰符&#xff1a; a) public 【公共的】访问不受到任何限制&#xff0c;级别最高。一般用于修饰方法&#xff0c;提供给其他类调用。 b) private 【私有的】只有类的内部可以使用&#xff0c;一般用于修饰字段&#xff0c;保证数据的安全性。 注&#xff1a;如果…

java面试题27 java中下面哪些是Object类的方法()

java面试题27 java中下面哪些是Object类的方法&#xff08;&#xff09; A notify() B notifyAll() C sleep() D wait() 蒙蔽树上蒙蔽果&#xff0c;蒙蔽树下你和我。遇到这种题&#xff0c;我默默的打开了编译工具 Object类中方法&#xff1a; protected Object clone()…

HK-2000 数采仪系统说明之 7.HK7710 DTU 简单配置说明

DTU配置列表: 1 移动服务中心设置(MSC) 2 终端单元设置 3 网络通道设置 4 用户串口设置 移动服务中心设置(MSC) 一般默认&#xff0c;当需要连接的网络是APN网络是需要配置&#xff0c;该项下的APN接入点信息 MSC设置列表: 1 服务代码 2 P…

shiro学习(1):shiro简介

Apache Shiro是Java的一个安全框架。对比另一个安全框架Spring Sercurity&#xff0c;它更简单和灵活。 Shiro可以帮助我们完成&#xff1a;认证、授权、加密、会话管理、Web集成、缓存等。 Apache Shiro特性 Authentication&#xff1a;身份认证/登录&#xff0c;验证用户是…

是要我向垃圾学习吗

之前把程序给改了&#xff0c;造成程序不能通过编译&#xff0c;然后 领导让我不要乱改&#xff0c;程序那么写肯定是有原因的&#xff0c;照着以前的弄。 我心里那叫一个羊驼&#xff0c;我改的是我自己写的那部分结构&#xff0c;我在编写新功能的逻辑的时候&#xff0c;发现…

微软启动了自爆程序,让我们一起帮它倒计时

……“公元2008年10月20日&#xff0c;注定成为人类信息技术史上不平凡的一天&#xff0c;因为在这一天&#xff0c;曾经创造了无数辉煌的计算机软件帝国微软公司&#xff0c;启动了自爆程序&#xff0c;剩下的&#xff0c;就是倒计时了……” ——《地球人类信息技术编年史》 …

python字典遍历的几种方法(转)

源地址&#xff1a;https://www.cnblogs.com/stuqx/p/7291948.html&#xff08;1&#xff09;遍历key值>>> a {a: 1, b: 2, c: 3} >>> for key in a:print(key:a[key])a:1 b:2 c:3 >>> for key in a.keys():print(key:a[key])a:1 b:2 c:3在使用上&a…

shiro学习(2):第一个shiro程序

工具idea 首先创建maven项目 配置文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

解决水晶报表部署时出错的问题

我在使用VS2008自带的水晶报表开发一个项目时&#xff0c;遇上这么一个问题&#xff0c;就是在开发环境下运行没有问题&#xff0c;而且在开发的机器上部署发布的项目时也没有问题&#xff0c;但是在服务器上部署发布的项目就出现web.config配置文件出错。 错误报的是&#xff…