ArrayList 实现了List的接口,是长度可变的数组,空间是连续的

api默认提供了很多操作ArrayLis的方法,这些方法可以去api里面查询使用

一、这么多方法怎么学?
1.熟练使用常见的方法
2.了解大概还有哪些方法
3.需要用的时候,就查api文档

二、常见的集合有
ArrayList LinkedList ( vector ) HashSet () HashMap (HashTable)

三、arraylist常见方法
(1)size()元素个数
(2)add() 向数组中添加元素
(3)Object : get() 获取集合中指定位置的元素

四、其中LinkedList : 用法跟ArrayList是一样的

1.LinkedList和ArrayLis相同点
(1).都实现了list接口
(2).常用方法基本一样

2.不同点:
(1).底层结构不一样
ArrayList是空间是连续的,LinkedList空间是不连续的,用的是链表。

什么时候用LinkedList?,什么时候用ArrayList?
查询和修改次数相对比较多的是用ArrayList。
删除和新增比较多的时候用LinkedList。

五、ArrayList;查询和修改效率高,删除和新增效率低
原因:查询和修改效率高得原因空间连续的,删除和新增效率低因为涉及到了元素的移动(多了个元素移动的时间)
LinkedList;查询和修改效率低,删除和新增效率高
原因:查询和修改效率低的原因(多了个寻址时间)

计算机中要么空间换时间,要么时间换空间,不可能两全其美。

ArrayList:
add(0,Object); 在集合的第0个位置插入
add() 在集合的最后一个位置插入
get(0) 获取第1个元素
get(list.size()-1) 获取最后一个个元素

LinkedList: 
addFirst() 在集合的第0个位置插入
addFirst() 在集合的最后一个位置插入
getFirst() 获取第1个元素
getLast() 获取最后一个个元素

List是干啥的?
临时存储数据,操作数据(冒充数据库的)

ArrayList集合详解的更多相关文章

  1. Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理

    本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整 ...

  2. Java 集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  3. Java集合详解8:Java的集合类细节精讲

    Java集合详解8:Java集合类细节精讲 今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http:// ...

  4. Java集合详解3:Iterator,fail-fast机制与比较器

    Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...

  5. 【转载】Java 集合详解

    转载:https://www.cnblogs.com/ysocean/p/6555373.html 一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段 ...

  6. Java集合详解8:Java集合类细节精讲,细节决定成败

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  7. Java集合详解3:一文读懂Iterator,fail-fast机制与比较器

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  8. Java集合详解2:一文读懂Queue和LinkedList

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  9. 集合详解之 Map

    集合详解之 Map + 面试题 集合有两个大接口:Collection 和 Map,本文重点来讲解集合中另一个常用的集合类型 Map. 以下是 Map 的继承关系图: Map 简介 Map 常用的实现 ...

随机推荐

  1. 参数类型 (实体类层)eneity或pojo 常用参数类型

    import java.util.Date;@TableName("p_user_base_info") public class UserBaseInfo extends Mod ...

  2. codeforces1213F tarjan缩点+拓扑排序

    题意 给定两个长度为n的排列p和q,构造一个字符串s满足\(s[p_i]<=s[p_{i+1}]\)和\(s[q_i]<=s[q_{i+1}]\),且满足字符串中不同字符的个数不少于k. ...

  3. java试题复盘——11月13日

    上: 10. AccessViolationException异常触发后,下列程序的输出结果为(   A   ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 AccessViol ...

  4. D. Restore Permutation(权值线段树)

    D. Restore Permutation time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  5. js循环数组(总结)

    js循环数组(总结) 一.总结 一句话总结: for循环:for(j = 0,len=arr.length; j < len; j++) {} foreach循环:arr.forEach((it ...

  6. git如何配置邮箱和用户名?

    答: 1. 配置邮箱 git config --global user.email "jello_smith@163.com" 2. 配置用户名 git config --glob ...

  7. C之枚举

    #include<stdio.h>#include<stdlib.h>enum WeekDay{ Monday,Tuesday,Wednesday,Thursday,Frida ...

  8. C之数据类型

    java的数据类型 byte 1个字节 boolean 1个字节 short 2个字节 char 2个字节 int 4个字节 float 4个字节 long 8个字节 double 8个字节 c语言的 ...

  9. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_10-修改页面-前端-修改页面

    1.进入页面,通过钩子方法请求服务端获取页面信息,并赋值给数据模型对象 2.页面信息通过数据绑定在表单显示 3.用户修改信息点击“提交”请求服务端修改页面信息接口 3.3.3 修改页面 3.3.3.1 ...

  10. 动手生成 Delphi xe DBTreeview

    tProductType表结构如下 object FDConnection1: TFDConnection    Params.Strings = (      'Database=ClothingT ...