ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点

LinkedList接口(在代码的使用过程中和ArrayList没有什么区别)

ArrayList底层是object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。

而在LinkedList的底层是一种双向循环链表。在此链表上每一个数据节点都由三部分组成:前指针(指向前面的节点的位置),数据,后指针(指向后面的节点的位置)。最后一个节点的后指针指向第一个节点的前指针,形成一个循环。

双向循环链表的查询效率低但是增删效率高。所以LinkedList具有查询效率低但增删效率高的特点。

ArrayList和LinkedList在用法上没有区别,但是在功能上还是有区别的。

LinkedList经常用在增删操作较多而查询操作很少的情况下:队列和堆栈。

队列:先进先出的数据结构。

堆栈:后进先出的数据结构。

 1 package TomTexts;
 2
 3         class superClass{
 4             void superPrint(){
 5                 System.out.println("This is superClass!");
 6             }
 7         }
 8         class subClass extends superClass{
 9
10             void superPrint(){
11                 System.out.println("This is subClass!");
12             }
13         }
14         public class TomTexts_10{
15             public static void main(String args[]){
16                 subClass subObject = new subClass();
17                 subObject.superPrint();  //子类对象调用子类的方法
18                 superClass superObject = new superClass();
19                 superObject.superPrint();  //父类对象调用父类的方法
20             }
21         }

原文地址:https://www.cnblogs.com/borter/p/9420340.html

时间: 2024-08-30 12:01:05

ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点的相关文章

JavaScript基础 使用for循环遍历数组 并 查询 数组中是否存在指定的值

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset);

HDU 3333 Turing Tree 树状数组 离线查询

题意: 给你一个数列,然后有n个查询,问你给定区间中不同数字的和是多少. 思路还是比较难想的,起码对于蒟蒻我来说. 将区间按照先右端点,后左端点从小到大排序之后,对于每个查询,我只要维护每个数字出现的最后一次就可以了(这个结论稍微想一下就可以证明是正确的). 然后就是简单的点更新,区间求和问题了- #include <cstdio> #include <cstring> #include <iostream> #include <map> #include

【树状数组+离线查询】HDU 3333 Turing Tree

https://www.bnuoj.com/v3/contest_show.php?cid=9149#problem/H [题意] 给定一个数组,查询任意区间内不同数字之和. (n<=30000,Q<=100000,每个数字<=1 000 000 000) [思路] 要算任意区间内不同数字之和,如果我们从左到右依次处理,每次只保留最右边出现的数字,处理以当前数字为右端点的查询,就能做到"不同数字之和",即不重不漏.因此我们要离线处理查询,按记录每个数作为右端点的所有查

java~springboot~ibatis数组in查询的实现

在ibatis的xml文件里,我们去写sql语句,对应mapper类的方法,这些sql语句与控制台上没什么两样,但在有些功能上需要注意,如where in这种从数组里查询符合条件的集合里,需要在xml里进行特别的处理. <update id="batchUpdate" parameterType="map"> update customer_info set status=#{status},appoint_time=#{appointTime} whe

mogodbshell中数组对象查询修改方法

在mongodb中,存在如下数据 { "_id" : ObjectId("59af55078a8fc5e51ff425de"), "title" : "title1", "col" : "col 1", "reader" : [ { "readername" : "jim", "isread" : true

C# IEnumerable&lt;T&gt;、IEnumerator&lt;T&gt;、List&lt;T&gt;、ArrayList、[]数组各各的区别

List <T>是ArrayList的泛型,ArrayList里边的数据类型是object,List <T>里边的是具体的某种类型. ArrayList类似于向量,可以存储不同的数据类型在一个数组里边(转换为了object). 一般使用的时候尽量使用List <T>,因为ArrayList存取都要进行一次转换(装箱.拆箱). []类型的数组类似于List <T>,不同的是[]是定长的,而List <T>是长度可变的数组. ICollection主

Java中ArrayList与数组间相互转换

在实际的 Java 开发中,如何选择数据结构是一个非常重要的问题. 衡量标准化(读的效率与改的效率) : ① Array: 读快改慢 ② Linked :改快读慢 ③ Hash:介于两者之间 实现List.Set和数组之间转换的关键点如下:(一定要注意泛型的引用) 1. List转换成数组可以使用List的toArray方法,返回一个Object数组:    2. Set转换成数组可以使用Set的toArray方法,返回一个Object数组:  3. 如果List或Set中元素的类型都为A,那么

ArrayList和数组之间的转换

转载:http://blog.csdn.net/brave_heart_lxl/article/details/6178909 List----->数组开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util.ArrayList; import java.util.List; public class Test { /** * @param args */ public static void main(Stri